Testez vos fichiers de configuration avant de redémarrer
Le titre paraît un peu autoritaire, mais en fait, c’est juste pour partager avec vous les différentes commandes vous permettant de valider un fichier de configuration avant de redémarrer votre application, permettant ainsi de réduire les temps d’interruption. Sans surprise, c’est principalement autour d’applications liées à l’hébergement de sites web dont il sera question aujourd’hui.
PHP
Pour tester votre fichier de configuration .ini, c’est assez simple finalement :
1 |
php -c <fichier_ini> -i |
Et si vous voulez valider votre configuration FPM, c’est tout aussi simple
1 |
php-fpm -t -c <fichier_conf> |
Serveurs Web
Pour Apache, on peut trouver deux méthodes pour valider un fichier de configuration, suivant votre installation :
1 2 3 4 |
apachectl configtest httpd -t -c <fichier> apache2 -t -c <fichier> |
Si c’est Nginx qui a vos faveurs, vous pouvez utiliser cette commande :
1 |
nginx -t -c <fichier_de_conf> |
MySQL/MariaDB
Malheureusement, il n’existe pas de switch/procédure pour tester directement le fichier de configuration. On peut contourner en bricolant directement en « lançant » une deuxième version éphémère du serveur avec l’option –help :
1 |
/usr/bin/mysqld --help --defaults-file=<fichier> |
Vous pouvez vous passer de –defaults-file si le fichier est à l’emplacement par défaut. S’il y a une erreur dedans, vous aurez le message kivabien pour corriger.
Varnish
Apparemment varnishd propose directement une option pour valider un fichier vcl :
1 |
varnishd -C -f /path/to/mysetup.vcl |
Pour ma part, j’ai pris l’habitude de tenter de directement charger le fichier avec varnishadm, si ça compile pas on a l’erreur qui s’affiche :
1 |
varnishadm -T <127.0.0.1:admin_port> -S fichier.secret vcl.load newversion conf.vcl |
Proftpd
Le vénérable serveur FTP/SFTP dispose lui aussi d’une option directe pour tester le fichier de configuration :
1 |
proftpd -c </path/to/new/config/file> -td10 |
Le -t10 permet d’avoir plus de détails sur les éventuelles erreurs, ainsi que le cheminement complet du chargement.
Tomcat
Le serveur d’application Java de la fondation Apache propose une validation de ses fichiers de configuration :
1 |
<path_to>/bin/catalina.sh configtest |
De manière générale, pour en savoir plus sur le fichier catalina.sh, vous pouvez lire cet article (en anglais).
Haproxy
Je l’ai cherché très vite cette commande dès que j’ai commencé à manipuler le célèbre load-balancer, parce que quand vous avez plusieurs clients configurés sur une seule instance, vous risquez pas de tout péter en live 😀
1 |
haproxy -f haproxy.conf -c |
Et probablement d’autres
Ce sont les plus courantes que je peux rencontrer au quotidien. Si jamais vous en connaissez d’autres, vous pouvez vous faire plaisir avec les commentaires pour compléter cette micro-bible, ça me fera plaisir ainsi qu’aux autres lecteurs.
Pour SSH (ce qui peut être pertinent pour éviter de se coincer dehors, même si un restart du service ne coupe pas les sessions existantes) :
sshd -T [-f /etc/ssh/sshd_config]
ousshd -t
.J’y touche tellement pas souvent que je l’avais oublié celui-là, merci 🙂
Il y a aussi
nginx -t
Il y a aussi visudo -c ou visudo -cf /etc/sudoers quand on a édité le fichier /etc/sudoers sans passer par la commande visudo.
Pratique pour les outils d’automatisation comme ansiblle, chef, etc.