TP Modules
Contexte
Dans les TPs précédents vous avez manipulé les objets les plus importants de puppet:
- ressources
- classes
- defined types
La force incontestable de puppet est la modularité, et la distribuabilité du code, matérialisés par les modules. Les modules sont à puppet ce que les RPMs sont à RedHat Linux : une manière de "packager" la gestion d'un composant logiciel.
Objectifs
- savoir utiliser les sous-commandes
puppet module *
- modifier un module existant
- optionnel : publier un module sur la forge puppetlabs
Exercice 1: récupérer un module de la forge puppetlabs
- récupérez le module
ccin2p3/formation_puppet
curl -O https://puppet-formation.pages.in2p3.fr/cours/master/ccin2p3-formation_puppet-0.1.1.tar.gz
- installer le module
ccin2p3/formation_puppet
sudo puppet module install ccin2p3-formation_puppet-0.1.1.tar.gz
- lisez la documentation de ce module
- écrire un manifest reprenant l'exemple du paragraphe "Usage" de la documentation, et l'appliquer avec
sudo puppet apply
. Appelez-leTP-module.pp
- en analysant la sortie de la commande
sudo puppet apply
répondez aux questions suivantes:- quels fichiers sont créés ou modifiés lors du premier
apply
? - même question au deuxième
apply
- quels fichiers sont créés ou modifiés lors du premier
- Où se trouve le code de la classe
formation_puppet::motd
? - Modifiez le code du module
formation_puppet
:# décompressez l'archive d'origine tar xvfz ccin2p3-formation_puppet-0.1.1.tar.gz # modifiez la classe `formation_puppet::motd` afin que le contenu du fichier généré dans `/etc/motd` contienne en plus le nom de l'OS (voire d'autres *facts* de la machine) cd ccin2p3-formation_puppet-0.1.1 vi manifests/motd.pp # incrémentez la version en 0.2.0 vi metadata.json # ajoutez une entrée au "changelog" vi CHANGELOG.md # rebuildez le module pdk build # installez le module màj sudo puppet module install pkg/ccin2p3-formation_puppet-0.2.0.tar.gz -f
- Quels sont les modules utilisés par le module
formation_puppet
?
Note
Vous devrez rebuilder et réinstaller le module après chaque modification.