Instalar RedSleeve 7.1 en Raspberry Pi

RedSleeve es un port basado en RedHat que permite tener un servidor empresarial RedHat/CentOS corriendo en un Raspberry Pi.

Para instalarlo en nuestro Raspberry Pi (versión 1 modelo B) sólo seguí las instrucciones de la Wiki de RedSleeve. Después de descargar la versión raspi-redsleeve7.1-cli-0.4.img.xz  (cli significa command line interfase, osea que es la versión que no tiene entorno gráfico), busqué el nombre de la unidad USB, que en mi caso es /dev/sdd y corrí los siguientes comandos:

sudo xz -cd raspi-redsleeve7.1-cli-0.4.img.xz | sudo dd of=/dev/sdd bs=4M

Después de unos minutos (dependiendo de la velocidad de la tarjeta SD) quedó grabado el contenido de la imagen de disco en la tarjeta, pronta para bootear con el Raspberry. Con esto pronto el dispositivo ya funcionaría, pero para poder utilizarlo habría que conectarlo a un monitor y a un teclado para poder tener una interfase con qué trabajar, ya que por defecto tiene habilitado DHCP (o quizá buscar la IP que le asigne el servidor DHCP para poder entrar por SSH).

De todas maneras creí recomendable hacer algunas tareas antes de usarlo:

  • La primera: redimensionar la partición para darle más espacio en la tarjeta SD,
  • configurar la red con IP estática antes de encenderlo y
  • modificar los espejos de los repositorios que vienen por defecto.

Redimensionar tarjeta SD:

Para redimensionar la tarjeta SD utilicé GParted, el cual no tenía instalado, cosa que hice con un simple:

sudo dnf install gparted -y

Desde ahí, como la tarjeta SD es de 8 Gb, asigné todo el espacio libre a la partición  del sistema (antes de realizar este procedimiento es recomendable desmontar la partición). Hay que recordar que con una de 2 Gb alcanza para “instalar” RedSleeve.

Configurar la IP estática:

Después de utilizar toda el espacio disponible de la tarjeta lo que hice fue ingresar como root para modificar los archivos /etc/sysconfig/network-scripts/ifcfg-eth0, para que la red quedara configurada con una IP estática:

DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.0.200
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
DNS1=200.40.200.245
DNS2=200.40.30.245
DOMAIN=midominio.uy
ONBOOT=yes

y /etc/resolv.conf para los DNS, de la siguiente manera:

search midominio.uy
nameserver 200.40.30.245
nameserver 200.40.220.245
nameserver 8.8.4.4
nameserver 8.8.8.8

Modificar los repos desactualizados:

Esto lo explico en este artículo.

Para recordar:

La contraseña de root por defecto en RedSleeve es password, no olvidar modificarla. Para esto basta con ejecutar el comando:

passwd root

Actualizar RedSleeve 7 en Raspberry Pi

Luego de instalar RedSleeve 7 -una distribución derivada de RedHat, como si fuese CentOS para Raspberry Pi- encontré un error al intentar actualizar el sistema operativo:

# yum update
Complementos cargados:fastestmirror
Could not retrieve mirrorlist http://ftp.redsleeve.org/pub/el7/mirrors error was
14: HTTP Error 404 - Not Found


 One of the configured repositories failed (Desconocido),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Disable the repository, so yum won't use it by default. Yum will then
        just ignore the repository until you permanently enable it again or use
        --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>

     4. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: Redsleeve_7.1
[root@grey ~]# yum repo list
Complementos cargados:fastestmirror
No existe el comando: repo. Por favor, utilice /usr/bin/yum --help

Luego de googlear el error encontré la solución en un sitio japonés. Para arreglar los links de los repositorios debemos editar los repositorios Redsleeve.repo:

# vi /etc/yum.repos.d/Redsleeve.repo

comentando las URI que trae por defecto en mirrorlist y agregando las nuevas:

[Redsleeve_7.1]
name=RSEL 7.1
failovermethod=priority
#mirrorlist=http://ftp.redsleeve.org/pub/el7/mirrors
mirrorlist=http://ftp.redsleeve.org/pub/el7-devel/el7/mirrors
enabled=1
metadata_expire=0s
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redsleeve-release
 
[Redsleeve_7.1_updates]
name=RSEL 7.1 Updates
failovermethod=priority
#mirrorlist=http://ftp.redsleeve.org/pub/el7/mirrors-updates
mirrorlist=http://ftp.redsleeve.org/pub/el7-devel/el7/mirrors-updates
enabled=1
metadata_expire=0s
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redsleeve-release
También hacemos lo mismo para el otro repositorio raspberry.repo:
# vi /etc/yum.repos.d/raspberry.repo
Quedando de esta manera:
[Redsleeve_raspberrypi]
name=RSEL raspberrypi repo
failovermethod=priority
#mirrorlist=http://ftp.redsleeve.org/pub/el7/raspberrypi/mirrors
mirrorlist=http://ftp.redsleeve.org/pub/el7-devel/el7/raspberrypi/mirrors
enabled=1
metadata_expire=0s
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redsleeve-release
Fuente: Air-Foron