Lors de l'installation de nouveaux serveurs, j'ai généralement tendance à oublier quelque chose qui est nécessaire pour que le serveur fonctionne réellement. J'aimerais disposer d'une sorte de vérification automatique avant le vol pour remarquer les fonctionnalités manquantes avant de démarrer le serveur pour la première fois et d'avoir des utilisateurs actifs sur le serveur.
Disons que j'exécute un pool de serveurs d'applications utilisant une plateforme comme Tomcat ou PHP derrière un équilibreur de charge. Le service nécessite généralement quelques-unes des choses suivantes :
- les logiciels installés (programmes externes comme wget ou ImageMagick, etc.)
- les modules installés (par exemple, libcurl, mod_rewrite, Oracle, etc.)
- les fichiers de configuration (par exemple, tnsnames, php.ini etc)
- systèmes de fichiers montés, liens symboliques quelque part, permissions spécifiques pour certains répertoires
- des ports réseau spécifiques doivent être accessibles depuis la machine (par exemple, mysql ou un proxy http).
- des ports réseau spécifiques doivent être accessibles sur la machine (cela doit être testé depuis une autre machine, par exemple rsync ou le port 8080).
- des processus spécifiques doivent être lancés
- les cronjobs doivent exister
Je suppose qu'il serait possible d'écrire des tests unitaires pour la plupart de ces conditions et de les exécuter sur chaque machine après l'installation, mais je préférerais un outil plus spécifique pour une telle tâche, peut-être avec un langage spécial de type Shell pour écrire les tests (étant donné que différents outils sont nécessaires pour tout tester, cela impliquerait d'exécuter des Shell perl, des programmes java, de vérifier les fichiers, les permissions, les lignes dans les fichiers confic etc).
Je dois ajouter que je ne veux pas être capable de réparer les éléments manquants, je veux juste vérifier si je dois demander des changements supplémentaires aux collègues des opérations.