Commandes Utiles et Astuces pour Travailler avec Alpine Linux
- Mise à jour le 01 juil. 2024
Dans cet article, je partagerai quelques éléments sur l'utilisation d'Alpine Linux, une distribution GNU/Linux réputée pour sa petite taille, sa simplicité et sa sécurité (ça fait envie n'est ce pas?). Contrairement à la plupart des autres distributions, elle n'utilise pas systemd, ce qui est plutôt rare de nos jours. J'ai commencé à l'utiliser pour plusieurs applications et services différents, et je dois dire que j'ai été plutôt impressionné par ses qualités. J'utiliserai donc cette page comme pense bête, dans l'espoir qu'elle sera utile à d'autres.
Commandes Utiles
- Mettre à jour Alpine Linux :
root@host:~# apk add --upgrade apk-tools && apk upgrade --available
- Installer un package :
root@host:~# apk add vim
Python
- Installer
python3
:
root@host:~# apk add python3
- Ajouter le module
pip
:
Créer et activer un environnement virtuel:
host:~$ python -m venv .web3
host:~$ source .web3/bin/activate
Installer le module pip
dans l'environnement virtuel et vérifier la version:
(.web3) host:~$ python -m ensurepip
(.web3) host:~$ python -m pip --version
Cron
L'utilisation de Cron dans Alpine Linux est assez particulière, surtout si comme moi on a l'habitude d'utiliser Debian. Voyons comment cela fonctionne. Pour cet exemple, supposons que nous voulons configurer crond pour exécuter un script python (/root/script.py dans ce cas) toutes les 5 minutes.
- Créer le dossier
/etc/periodic/5min
:
root@host:~# mkdir /etc/periodic/5min
- Ajouter l'entrée suivante dans le fichier
/etc/crontabs/root
pour la prise en compte du dossier/etc/periodic/5min
:
*/5 * * * * run-parts /etc/periodic/5min
- Créer un script sh
/etc/periodic/5min/pscript
(ne pas utiliser l'extension.sh
) :
#!/bin/sh
/root/script.py
- Le rendre executable :
root@host:~# chmod +x /etc/periodic/5min/pscript
- Faire un test :
root@host:~# run-parts --test /etc/periodic/5min/
- Prendre en compte les modifications :
root@host:~# rc-service crond start && rc-update add crond
Installer les VMware Tools
Si on installe Alpine Linux dans une machine virtuelle dans un environnement VMware ESXi, il est recommandé d'installer les VMware Tools pour des performances et une fonctionnalité optimales.
- Éditer le fichier
/etc/apk/repositories
et décommenter la ligne community :
#/media/cdrom/apks
http://dl-cdn.alpinelinux.org/alpine/v3.19/main
http://dl-cdn.alpinelinux.org/alpine/v3.19/community
- Installer les paquets
open-vmtools
:
root@host:~# apk add open-vm-tools open-vm-tools-guestinfo open-vm-tools-deploypkg
- Démarrer le service
open-vmtools
:
root@host:~# rc-service open-vm-tools start
- Activer le service
open-vmtools
au démarrage :
root@host:~# rc-update add open-vm-tools boot
Comment mettre à niveau Alpine Linux
Supposons ici que nous souhaitons mettre à jour d'Alpine Linux de la version 3.19 à la version 3.20.
- Tout d'abord, mettre à jour la version d'Alpine Linux:
root@host:~# apk add --upgrade apk-tools && apk upgrade --available
- Éditer le fichier
/etc/apk/repositories
et remplacer 3.19 par 3.20:
#/media/cdrom/apks
http://dl-cdn.alpinelinux.org/alpine/v3.20/main
http://dl-cdn.alpinelinux.org/alpine/v3.20/community
- Lancer la mise à niveau:
root@host:~# apk update && apk upgrade --available
- Redémarrer le système:
root@host:~# reboot
nftables
- Installer
nftables
:
root@host:~# apk add nftables
- Redémarrer :
root@host:~# reboot
- Éditer le fichier
/etc/nftables.nft
et ajouter ses règles :
#!/usr/sbin/nft -f
# vim: set ts=4 sw=4:
# You can find examples in /usr/share/nftables/.
# Clear all prior state
flush ruleset
#IPv4
table ip filter {
chain input {
type filter hook input priority 0; policy accept;
}
chain forward {
type filter hook forward priority 0; policy accept;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
#IPv6
table ip6 filter {
chain input {
type filter hook input priority 0; policy accept;
}
chain forward {
type filter hook forward priority 0; policy accept;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
- Configurer le service
nftables
afin qu'il démarre automatiquement au boot :
root@host:~# rc-update add nftables boot