Alpine y Arch en la Raspberry
Con todo esto que te vengo contando en las últimas semanas sobre los contenedores, he tenido una revelación o casi. Creo que fue anoche, cuando me desperté entre sueños, con una idea en mente, que seguro ya se le había ocurrido a millones de personas mucho antes, pero que por alguna extraña razón, a mi, no se me había ocurrido hasta el momento. Si con Alpine Linux se consiguen imágenes de contenedores tan livianas, ¿porque no aprovechar ese potencial en la Raspberry?. Así que esto me ha llevado a instalar tanto Alpine como Arch en la Raspberry.
Claro, que te preguntarás ¿porque Alpine y Arch? ¿Porque no te has decantado por una de ellas? Pues si, finalmente me he decidido por Arch en la Raspberry, pero esto te lo contaré a lo largo del podcast. Sinceramente, creo que ha sido una buena decisión esto de instalar Arch en la Raspberry.
Es posible, que esté cayendo en el distrohopping en la Raspberry. Pero ¿para que está la Raspberry si no es para probar?
Alpine y Arch en la Raspberry
Instalando Alpine
Como te decía en la introducción, el primer paso, después de esa visión, fue instalar Alpine Linux, algo que fue tremendamente sencillo, y que te invito a que pruebes si quieres, siguiendo, escrupulosamente los pasos que indican en su página web.
Sin embargo, ni el montaje de las particiones queda como debería, y además cada vez que realizas una modificación además de guardarlo es necesario consolidarlo.
Probablemente, y con toda seguridad, exista la posibilidad de hacerlo de otra forma, pero, tampoco investigué mas, y preferí optar por otras soluciones.
Instalando Arch en la Raspberry
Al ver los inconvenientes que he comentado en el apartado anterior, decidí probar con otra distro, que viniera tan pelada como Alpine Linux, o al menos, parecido. De esta forma me decidí por Arch, y la verdad es que ha sido todo un acierto y un bonito encuentro.
La instalación no ha sido nada compleja, todo lo contrario, ha sido realmente sencilla. Tan sencilla, que lo instalé varias veces, hasta que conseguí tener mi propio script de instalación probado y funcionando.
El script lo puedes encontrar en el repositorio de GitHub donde estoy alojando los scripts en Bash que tengo por ahí desperdigados para que se encuentren todos en el mismo sitio.
El primer paso, actualizar
Acceder a la Raspberry, como alarm
y modificar el archivo de configuración de sshd
para acceder como root
. En algún que otro sitio, habla de acceder como root
, pero lo cierto es que en la configuración de sshd_config
no lo tiene habilitado.
Pero para esto tienes que acceder con el usuario alarm
y ganar derechos de administrador, para lo que tienes que ejecutar la siguiente instrucción,
su - root
Vamos a actualizar,
pacman-key init
pacman-key-populate archlinuxarm
pacman -Syyu
Ganar derechos de administrador y modificar nuestro usuario
Instalamos sudo
para poder realizar operaciones administrativas con nuestro usuario,
pacman -S sudo
Ahora vamos a modificar el archivo /etc/sudoers
. Para ello tienes que utilizar visudo
. Tienes diferentes opciones, pero yo me he decantado en este caso por descomentar la línea,
%wheel ALL=(ALL) NOPASSWD: ALL
Llámame loco, pero así no tengo que poner tanta contraseña, que al final, para esto no tiene mucho sentido. Al menos en mi caso. Por otro lado, asegurate de que tu usuario pertenece al grupo wheel
. Para ello simplemente tienes que ejecutar con tu usuario groups
o si estás con el usuario root
, ejecutas groups <nombre-de-usuario>
. En mi caso
groups lorenzo
Configurando tu usuario
Voy a permitir acceder a root de forma temporal vía ssh
. Esto es para modificar la configuración de mi usuario. Cuando termine dejaré la configuración como estaba inicialmente.
vi /etc/ssh/sshd_config
Y añades la siguiente línea,
PermitRootLogin yes
Una vez realizado este paso, simplemente reinicia el servicio,
systemctl restart sshd
Y sales de la Raspberry, y vuelves a acceder esta vez ya como root
. Esto te va a permitir cambiar tu nombre de usuario, tu contraseña, el directorio de trabajo, e instalar sudo, siguiendo los pasos que te indico a continuación,
usermod -l lorenzo alarm
passwd lorenzo
usermod -d /home/lorenzo -m lorenzo
groupmod -n lorenzo alarm
De esta manera ya tienes tu usuario con tu nombre, alias o lo que quieras. Ahora simplemente tienes que restaurar el archivo de configuración a su estado inicial.
Otra cuestión que puedes hacer es cambiar el hostname
, en mi caso,
hostnamectl set-hostname raspiarch
Personalizando Arch en la Raspberry
Creo que en algún punto de las instrucciones que he dejado a continuación me olvidé de instalar git, pero para mi es una herramienta fundamental, con lo que voy a ponerla la primera de todas para que no se me olvide.
sudo pacman -S git
Instalar NeoVim
Tan sencillo como ejecutar,
sudo pacman -S neovim python-neovim
Instalando bash-it para Arch en la Raspberry
Tan sencillo como ejecutar
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
~/.bash_it/install.sh
source ~/.bashrc
A mi me gusta utilizar el tema powerline-multiline
. Para hacer esto, es tan sencillo, como editar el archivo ~/.bashrc
y editar la línea,
export BASH_IT_THEME=powerline-multiline
De nuevo, ejecutar source ~/.bashrc
y ya lo tienes perfectamente configurado
Configuración de dotfiles
Como comenté en un reciente podcast, actualmente estoy utilizando dotdrop
como mi gestor de dotfiles
así que ha llegado el momento de instalarlo. Para esto, directamente he clonado mi repositorio de GitHub
y después he instalado Python
y pip
,
sudo pacman -S python3 pip
Después tan sencillo como instalar las dependencias necesarias,
pip install --user -r requirements.txt
Aquí tuve que añadir una nueva variable para personalizar la instalación en el caso de la Raspberry con Arch, porque los instalé en otra ubicación. Sin embargo, esto es lo de menos.
Instalar WireGuard
Tan sencillo como ejecutar la siguiente instrucción,
sudo pacman -S wireguard-tools
Posteriormente reinicié la Raspberry. Para la configuración, detuve WireGuard en el servidor. Añadí la configuración de esta Raspberry en el mismo, y para terminar reinicié el servicio.
Posteriormente configuré la Raspberry con la clave pública del servidor y privada del cliente, añadí el keepalive
, y levanté el servicio. Todo funcionando
Instalando Docker
Por supuesto que no podía pasar sin instalar Docker aquí también. Así que vamos al tema
sudo pacman -S docker docker-compose
Por supuesto no podía instalar Docker sin instalar a su fiel vasallo docker-compose
.
Una vez instalado,
sudo systemctl start docker
sudo systemctl enable docker
Luego tienes que hacer los típicos pasos para tener Docker funcionando. Añadir tu usuario al grupo docker
, y probar con un,
docker -v
docker run hello-world
Algunas herramientas interesantes
Llegados a este punto, ya lo tengo todo completamente instalado y funcionando. Simplemente he querido instalar un par de herramientas para simplemente ver los consumos y alguna que otra cuestión extra en la raspiarch, como la he bautizado. Así, por ejemplo, he instalado algunas herramientas como
neofetch
bpytop
fzf
jump
Más información
It’s FOSS
ArchLinuxArm
How-To Geek
ArchWiki
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Imagen de portada de Emily Campbell
La entrada Alpine y Arch en la Raspberry aparece primero en Atareao.