Inicio · Ayuda · Configurar un servidor Alpine Linux
Configurar un servidor Alpine Linux: apk, OpenRC y musl
Alpine es el sistema más pequeño de la oferta. En lugar de glibc y las herramientas GNU usa musl y BusyBox, y en lugar de systemd, OpenRC. Esta guía es válida para Alpine 3.24 en un servidor Alpine.
Qué está instalado
- OpenRC como sistema de arranque. Al arrancar se ejecutan
syslog,crondy la red. - apk con los repositorios
mainycommunity. - BusyBox con el shell
ash. bash no está instalado. - doas en lugar de sudo. OpenSSH para iniciar sesión se añade al configurar el servidor.
1. Actualizar e instalar paquetes
apk update && apk upgrade
apk add nginx
apk search php
apk del vuelve a eliminar un paquete. Los paquetes instalados a petición propia figuran en /etc/apk/world.
2. Gestionar servicios
A diferencia de Debian, un servicio instalado no arranca solo. Se inicia una vez y se registra para el arranque del sistema:
rc-service nginx start
rc-update add nginx default
| Función | Alpine | Debian con systemd |
|---|---|---|
| Iniciar, detener, reiniciar | rc-service nginx start|stop|restart | systemctl start|stop|restart nginx |
| Estado | rc-service nginx status | systemctl status nginx |
| Activar al arrancar | rc-update add nginx default | systemctl enable nginx |
| Desactivar al arrancar | rc-update del nginx default | systemctl disable nginx |
| Todos los servicios | rc-status | systemctl list-units |
3. Configurar un servicio propio
Para un programa sin script de inicio incluido bastan unas pocas líneas. Guardarlo como /etc/init.d/miservicio y adaptar programa y usuario:
#!/sbin/openrc-run
name="meindienst"
command="/usr/local/bin/meindienst"
command_user="dienst"
command_background=true
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
need net
}
chmod 755 /etc/init.d/meindienst
rc-update add meindienst default
rc-service meindienst start
4. cron y registros
crond ya está en marcha. Las tareas propias se guardan con crontab -e en /etc/crontabs/root. Los scripts de /etc/periodic/daily y de las carpetas vecinas se ejecutan a diario, cada hora, cada semana o cada mes. BusyBox escribe los registros del sistema en /var/log/messages.
5. Permisos con doas
Para un usuario que pueda ejecutar comandos como root:
adduser betrieb
adduser betrieb wheel
echo 'permit persist :wheel' > /etc/doas.d/wheel.conf
Después, este usuario ejecuta comandos con doas, por ejemplo doas apk upgrade. Quien esté acostumbrado a sudo lo instala con apk add sudo.
musl en lugar de glibc
Los programas de paquetes apk y de código fuente funcionan sin restricciones. Los binarios compilados para glibc a menudo no arrancan. El paquete gcompat ayuda en casos sencillos. Si existe una edición propia para musl o Alpine, es la mejor opción. Para software que solo se publica para glibc conviene un servidor con Debian o Ubuntu.
Pasar a la siguiente versión
Cada seis meses aparece una nueva versión de Alpine. Antes del cambio, cree un snapshot en la cuenta de cliente. Después sustituya en /etc/apk/repositories el número de versión por el nuevo, aquí con el ejemplo 3.25, y actualice:
sed -i 's/v3.24/v3.25/g' /etc/apk/repositories
apk update && apk upgrade --available
reboot
Contenedor y kernel
Con nosotros, Alpine funciona como contenedor con Incus y usa el kernel del anfitrión. Por eso no hay paquetes del kernel ni módulos del kernel propios. Quien necesite un kernel propio elige un vServer con KVM.
Preguntas frecuentes
- ¿Cuánta memoria RAM necesita Alpine?
- El sistema en sí se conforma con pocos megabytes. La necesidad la determinan los servicios que se ejecutan en él.
- ¿Por qué faltan comandos que conozco de Debian?
- BusyBox incluye versiones ligeras de las herramientas habituales. Las versiones GNU completas están disponibles como paquetes, por ejemplo
coreutils,findutils,grepybash.
Más: Los primeros pasos en su vServer Configurar un servidor Devuan sin systemd