1 votes

Comment vérifier les conditions préalables d'un serveur nouvellement installé pour s'assurer qu'il fonctionnera réellement ?

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.

2voto

Roque Points 325

Pour ce faire, nous utilisons CFengine (mais Puppet fonctionnerait tout aussi bien) pour configurer les nœuds individuels en fonction de la configuration centralisée. CFengine appliquera la configuration correcte de la machine dans le bon ordre et continuera à le faire, par exemple, les processus seront redémarrés s'ils sont arrêtés.

Sur tous les nœuds, un script est disponible pour vérifier un certain nombre de choses (les fichiers sur le stockage central sont-ils lisibles, pouvons-nous ouvrir une connexion au cluster MySQL, etc). Ce script est utilisé par l'équilibreur de charge comme un contrôle de santé : ce n'est que si toutes les vérifications passent que le nœud renverra la valeur attendue par l'équilibreur de charge et qu'il sera marqué comme 'up' et autorisé à gérer le trafic.

0voto

wrmine Points 267

Vous devez documenter votre processus de construction avant de pouvoir faire un script pour tester le "caractère prêt" de vos nouveaux systèmes. Le document du processus vous donnera la liste de contrôle que vous voulez vérifier et une construction cohérente de chaque serveur. Cfengine et Puppet sont d'excellents moyens d'automatiser les builds mais pour les utiliser vous avez besoin d'une liste de tout ce qui doit être configuré.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X