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,cronde la rete. - apk con i repository
mainecommunity. - 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
| Funzione | Alpine | Debian con systemd |
|---|---|---|
| Avviare, fermare, riavviare | rc-service nginx start|stop|restart | systemctl start|stop|restart nginx |
| Stato | rc-service nginx status | systemctl status nginx |
| Attivare all'avvio | rc-update add nginx default | systemctl enable nginx |
| Disattivare all'avvio | rc-update del nginx default | systemctl disable nginx |
| Tutti i servizi | rc-status | systemctl 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,grepebash.
Continua: I primi passi sul suo vServer Configurare un server Devuan senza systemd