Aller au contenu
glowfish

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, crond et le réseau.
  • apk avec les dépôts main et community.
  • 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ôleAlpineDebian avec systemd
Démarrer, arrêter, redémarrerrc-service nginx start|stop|restartsystemctl start|stop|restart nginx
Étatrc-service nginx statussystemctl status nginx
Activer au démarragerc-update add nginx defaultsystemctl enable nginx
Désactiver au démarragerc-update del nginx defaultsystemctl disable nginx
Tous les servicesrc-statussystemctl 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, grep et bash.

Suite : Les premiers pas sur votre vServer Configurer un serveur Devuan sans systemd

Voir le serveur Alpine