1. Aperçu Puppet est un outil d’automatisation de configuration et de déploiement logiciel open source, facile à utiliser et puissant, qui attire de plus en plus d’attention, et de nombreuses grandes entreprises informatiques utilisent désormais Puppet pour gérer et déployer des logiciels en clusters, comme Google utilisant Puppet pour gérer plus de 6 000 ordinateurs Mac de bureau (données de 2007). Cet article présente principalement la méthode d’installation, l’architecture de conception et la méthode d’utilisation de la marionnette.
2. Architecture de conception Puppet est basé sur l’architecture C/S. Le côté serveur stocke tout le code de configuration du serveur client, appelé manifest in puppet. Après le téléchargement du manifeste par le client, le serveur peut être configuré selon le manifeste, comme la gestion des paquets, la gestion des utilisateurs et la gestion des fichiers.
Comme montré dans la figure ci-dessus, le flux de travail de la marionnette est le suivant : (1) Le client marionnette appelle facter, et facter détecte certaines variables de l’hôte, telles que le nom de l’hôte, la taille de la mémoire, l’adresse IP, etc. pupppetd envoie ces informations au serveur via une connexion SSL ; (2) Le marionnettiste côté serveur détecte le nom d’hôte du client, puis trouve la configuration correspondante du nœud dans le manifeste, et analyse cette partie du contenu. L’analyse syntaxique est divisée en plusieurs étapes, la vérification de la syntaxe et le rapport d’erreurs si la syntaxe est incorrecte. Si la syntaxe est correcte, il faut continuer à analyser, et le résultat de l’analyse génère un « pseudocode » intermédiaire, puis envoie le pseudocode au client ; (3) Le client reçoit le « pseudocode » et l’exécute, puis envoie le résultat d’exécution au serveur ; (4) Le côté serveur écrit le résultat d’exécution du client dans le journal. Deux points méritent d’être notés dans le processus de travail PUPPET : premièrement, pour garantir la sécurité, le client et le maître sont basés sur SSL et certificats, et seul le client authentifié par le certificat maître peut communiquer avec le maître ; Deuxièmement, le puppet maintiendra le système dans un certain état que vous attendez et le maintiendra en permanence, par exemple en détectant un fichier et en s’assurant qu’il existe toujours, en veillant à ce que le service ssh soit toujours activé, si le fichier est supprimé ou si le service ssh est fermé, la prochaine fois que le puppet sera exécuté (30 minutes par défaut), il recréera le fichier ou lancera le service ssh.
3. Installation de logiciels Il n’est pas recommandé d’utiliser la commande apt-get pour l’installation car la marionnette téléchargée par cette commande présente un bug. Il peut être installé directement depuis le code source, et le logiciel à installer est ruby, facter et puppet.
3.1 Procédure d’installation Modifier /etc/host pour modifier le nom d’hôte, car la marionnette est basée sur un certificat et contient le nom d’hôte dans le certificat ; Installez Ruby, Facter et Puppet sur Master et Slave, et utilisez Ruby Install.rb pour installer Facter et Puppet.
3.2 Structure des annuaires après installation (1) Répertoire d’installation Le répertoire d’installation est stocké dans /etc/puppet, et se manifeste dans ce répertoire pour stocker les fichiers manifestes. D’autres fichiers exécutables sous /user/sbin incluent principalement : marionnette : Utilisé pour exécuter des fichiers mainfests indépendants écrits par l’utilisateur, tels que : marionnette -l /tmp/manifest.log manifest.pp puppetd : un programme client qui s’exécute sur l’hôte géré, tel que : puppet –server servername –waitforcert 60 puppetmasterd : Un programme serveur qui s’exécute sur la machine de gestion, tel que : puppetmasterd –débogage Le programme de certification Puppetca Puppet est principalement utilisé pour authentifier les certificats d’esclaves, tels que : Vérifiez l’esclave à authentifier : puppetca –list Certifier ces esclaves : puppetca -s –a Puppetrun est utilisé pour se connecter au client, forçant l’exécution du fichier de configuration local, tels que : puppetrun -p 10 –host host1 –host host2 -t remotefile -t serveur web (2) Fichiers de configuration puppet.conf Le fichier de configuration principal de Puppet est /etc/puppet/puppet.conf pour les utilisateurs root, et ~user/.puppet/puppet.conf pour les utilisateurs normaux Pour des paramètres de configuration spécifiques, voir :
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Le fichier de configuration du serveur de fichiers fantoche. Utilisez le chemin du fichier de configuration du chemin et autorisez/refusez la configuration des autorisations d’accès, voir http://docs.puppetlabs.com/guides/file_serving.html
3.3 Vérifier que l’installation a été réussie Sélectionnez un esclave pour vérifier avec le maître, en supposant que l’hôte de l’esclave est slave00 et que l’hôte du maître est masterhost, entrez sur slave00 : puppetd –test –serveur Ensuite, regardez l’esclave à authentifier sur masterhost : puppetca –liste Si cela vous convient, vous pouvez voir slave00 signer le certificat d’esclave : Puppetca -s -a De cette manière, slave00 a réussi la validation du certificat et peut interagir davantage avec le maître. Écrivez le fichier site.pp dans le répertoire /etc/puppet/manifests de masterhost, qui se lit comme suit : node default { fichier { « /tmp/test » : content=> « bonjour », mode => 0644 ;
}
} En même temps, entrez puppetd –test –nom serveur sur slave00, vérifiez le dossier /tmp de slave00, et générez un nouveau test de fichier, dont le contenu est hello, et la permission du fichier est -rw-r—r-. Ainsi, l’installation de marionnettes s’avère réussie
|