3 votes

Comment l'agent Puppet actif gère-t-il un puppetmaster hors service ?

Supposons qu'un agent Puppet soit en train de rafraîchir ses données et que j'arrête le service principal de Puppet. Y a-t-il un risque qu'une configuration incomplète ou corrompue soit expédiée comme je le décris ci-dessous ?

Le contexte :

J'utilise l'intégration continue et le contrôle de version (Bamboo et Stash) pour mes fichiers de configuration Puppet.

J'ai rencontré des problèmes lors du processus de redéploiement. Le problème est le plus visible lorsque je fais une demande de retrait pour ma branche de production, mais il se produit également ailleurs. Un agent Puppet peut essayer d'accéder à un fichier de ressources qui a été supprimé avant d'avoir été repoussé. Bien que cela soit assez rare, cela a causé des ravages de toutes sortes, en particulier dans les modules qui utilisent une déclaration de fichier pour repousser un répertoire entier.

La solution la plus raisonnable que j'ai trouvée serait d'arrêter le service Puppet Master pendant la durée du déploiement, puis de le réactiver, mais je ne vois rien sur les conséquences de l'arrêt du Puppet Master alors qu'il est encore utilisé.

3voto

Shane Madden Points 112034

Pour un déploiement récursif, cela ne devrait-il pas être sans problème si l'on suppose qu'aucun des fichiers n'a changé lors de la dernière exécution, et donc que le jeu de fichiers d'avant est le même que celui d'après ?

Exact. La décision de remplacer un fichier est prise en fonction de la comparaison des hachages md5 du client et du serveur. Si vous arrêtez le maître au milieu de l'exécution, il devrait simplement se tromper sur toutes les ressources de fichiers restantes - vous ne vous retrouverez pas avec une copie partielle d'un fichier en place.

1voto

Sandstorm Points 31

Il y a plusieurs parties distinctes dans une exécution de Puppet.

  1. Le nœud récupère ses faits de lui-même et les envoie au serveur maître de Puppet.
  2. Le serveur maître de Puppet accepte ces faits d'un serveur et compile un catalogue qui doit être exécuté sur le nœud qui a signalé ses faits. Cela inclut le contenu des fichiers qui sont gérés.
  3. Le catalogue est envoyé au nœud et le nœud applique son catalogue localement.
  4. Le noeud rapporte son exécution

Ainsi, selon l'endroit où vous vous trouvez dans ce processus, soit l'exécution échouera purement et simplement, soit l'exécution du nœud se poursuivra et échouera au moment du rapport.

Il ne devrait pas y avoir de problème de fichiers corrompus comme vous le mentionnez.

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