Vai al contenuto
glowfish

Home · Assistenza · Configurare un server Alpine Linux

Configurare un server Alpine Linux: apk, OpenRC e musl

Alpine è il sistema più piccolo dell'offerta. Al posto di glibc e degli strumenti GNU usa musl e BusyBox, al posto di systemd OpenRC. Questa guida vale per Alpine 3.24 su un server Alpine.

Cosa è installato

  • OpenRC come sistema di avvio. All'avvio girano syslog, crond e la rete.
  • apk con i repository main e community.
  • BusyBox con la shell ash. bash non è installato.
  • doas al posto di sudo. OpenSSH per l'accesso si aggiunge con la configurazione del server.

1. Aggiornare e installare pacchetti

apk update && apk upgrade
apk add nginx
apk search php

apk del rimuove un pacchetto. I pacchetti installati su richiesta si trovano in /etc/apk/world.

2. Gestire i servizi

Diversamente da Debian, un servizio installato non si avvia da solo. Lo si avvia una volta e lo si registra per l'avvio del sistema:

rc-service nginx start
rc-update add nginx default
FunzioneAlpineDebian con systemd
Avviare, fermare, riavviarerc-service nginx start|stop|restartsystemctl start|stop|restart nginx
Statorc-service nginx statussystemctl status nginx
Attivare all'avviorc-update add nginx defaultsystemctl enable nginx
Disattivare all'avviorc-update del nginx defaultsystemctl disable nginx
Tutti i servizirc-statussystemctl list-units

3. Configurare un servizio proprio

Per un programma senza script di avvio incluso bastano poche righe. Salvarlo come /etc/init.d/mioservizio e adattare programma e utente:

#!/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 e log

crond gira già. I propri compiti si trovano con crontab -e in /etc/crontabs/root. Gli script in /etc/periodic/daily e nelle cartelle vicine vengono eseguiti ogni giorno, ogni ora, ogni settimana o ogni mese. BusyBox scrive i log di sistema in /var/log/messages.

5. Permessi con doas

Per un utente che può eseguire comandi come root:

adduser betrieb
adduser betrieb wheel
echo 'permit persist :wheel' > /etc/doas.d/wheel.conf

Poi questo utente esegue comandi con doas, ad esempio doas apk upgrade. Chi è abituato a sudo lo installa con apk add sudo.

musl al posto di glibc

I programmi dei pacchetti apk e dal codice sorgente girano senza limitazioni. I binari compilati per glibc spesso non si avviano. Il pacchetto gcompat aiuta nei casi semplici. Se esiste un'edizione apposita per musl o Alpine, è la scelta migliore. Per software pubblicato solo per glibc è adatto un server con Debian o Ubuntu.

Passare alla versione successiva

Ogni sei mesi esce una nuova versione di Alpine. Prima del cambio crei uno snapshot nell'account cliente, poi sostituisca in /etc/apk/repositories il numero di versione con quello nuovo, qui con l'esempio 3.25, e aggiorni:

sed -i 's/v3.24/v3.25/g' /etc/apk/repositories
apk update && apk upgrade --available
reboot

Container e kernel

Da noi Alpine gira come container con Incus e usa il kernel dell'host. Pacchetti del kernel e moduli del kernel propri non sono quindi previsti. Chi ha bisogno di un kernel proprio sceglie un vServer con KVM.

Domande frequenti

Quanta RAM serve ad Alpine?
Il sistema in sé si accontenta di pochi megabyte. Il fabbisogno lo determinano i servizi che vi girano.
Perché mancano comandi che conosco da Debian?
BusyBox porta versioni snelle degli strumenti consueti. Le versioni GNU complete sono disponibili come pacchetti, ad esempio coreutils, findutils, grep e bash.

Continua: I primi passi sul suo vServer Configurare un server Devuan senza systemd

Vedi il server Alpine