Accueil · Aide · Configurer un serveur Alpine Linux
Configurer un serveur Alpine Linux : apk, OpenRC et musl
Alpine est le plus petit système de l'offre. Au lieu de glibc et des outils GNU, il utilise musl et BusyBox, au lieu de systemd OpenRC. Ce guide s'applique à Alpine 3.24 sur un serveur Alpine.
Ce qui est installé
- OpenRC comme système de démarrage. Au démarrage tournent
syslog,crondet le réseau. - apk avec les dépôts
mainetcommunity. - BusyBox avec le shell
ash. bash n'est pas installé. - doas au lieu de sudo. OpenSSH pour la connexion s'ajoute lors de la configuration du serveur.
1. Mettre à jour et installer des paquets
apk update && apk upgrade
apk add nginx
apk search php
apk del supprime un paquet. Les paquets installés à votre demande figurent dans /etc/apk/world.
2. Gérer les services
Contrairement à Debian, un service installé ne démarre pas de lui-même. On le démarre une fois et on l'inscrit pour le démarrage du système :
rc-service nginx start
rc-update add nginx default
| Rôle | Alpine | Debian avec systemd |
|---|---|---|
| Démarrer, arrêter, redémarrer | rc-service nginx start|stop|restart | systemctl start|stop|restart nginx |
| État | rc-service nginx status | systemctl status nginx |
| Activer au démarrage | rc-update add nginx default | systemctl enable nginx |
| Désactiver au démarrage | rc-update del nginx default | systemctl disable nginx |
| Tous les services | rc-status | systemctl list-units |
3. Configurer votre propre service
Pour un programme sans script de démarrage fourni, quelques lignes suffisent. L'enregistrer sous /etc/init.d/monservice et adapter le programme et l'utilisateur :
#!/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 et journaux
crond tourne déjà. Vos propres tâches se trouvent avec crontab -e dans /etc/crontabs/root. Les scripts dans /etc/periodic/daily et les dossiers voisins s'exécutent chaque jour, chaque heure, chaque semaine ou chaque mois. BusyBox écrit les journaux système dans /var/log/messages.
5. Droits avec doas
Pour un utilisateur autorisé à exécuter des commandes en tant que root :
adduser betrieb
adduser betrieb wheel
echo 'permit persist :wheel' > /etc/doas.d/wheel.conf
Cet utilisateur exécute ensuite des commandes avec doas, par exemple doas apk upgrade. Qui est habitué à sudo l'installe avec apk add sudo.
musl au lieu de glibc
Les programmes issus des paquets apk et du code source fonctionnent sans restriction. Les binaires compilés pour glibc ne démarrent souvent pas. Le paquet gcompat aide dans les cas simples. S'il existe une édition dédiée pour musl ou Alpine, c'est le meilleur choix. Pour un logiciel publié uniquement pour glibc, un serveur Debian ou Ubuntu convient.
Passer à la version suivante
Une nouvelle version d'Alpine paraît tous les six mois. Avant le changement, créer un snapshot dans le compte client, puis remplacer dans /etc/apk/repositories le numéro de version par le nouveau, ici l'exemple 3.25, et mettre à jour :
sed -i 's/v3.24/v3.25/g' /etc/apk/repositories
apk update && apk upgrade --available
reboot
Conteneur et noyau
Chez nous, Alpine tourne en conteneur avec Incus. Il utilise le noyau de l'hôte. Les paquets du noyau et les modules du noyau personnalisés n'ont donc pas lieu d'être. Qui a besoin de son propre noyau choisit un vServer avec KVM.
Questions fréquentes
- De combien de mémoire vive Alpine a-t-il besoin ?
- Le système lui-même se contente de quelques mégaoctets. Le besoin est déterminé par les services qui y tournent.
- Pourquoi manque-t-il des commandes que je connais de Debian ?
- BusyBox apporte des versions légères des outils habituels. Les versions GNU complètes existent sous forme de paquets, par exemple
coreutils,findutils,grepetbash.
Suite : Les premiers pas sur votre vServer Configurer un serveur Devuan sans systemd