Saltar al contenido
glowfish

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, crond y la red.
  • apk con los repositorios main y community.
  • 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ónAlpineDebian con systemd
Iniciar, detener, reiniciarrc-service nginx start|stop|restartsystemctl start|stop|restart nginx
Estadorc-service nginx statussystemctl status nginx
Activar al arrancarrc-update add nginx defaultsystemctl enable nginx
Desactivar al arrancarrc-update del nginx defaultsystemctl disable nginx
Todos los serviciosrc-statussystemctl 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, grep y bash.

Más: Los primeros pasos en su vServer Configurar un servidor Devuan sin systemd

Ver servidor Alpine