02-TP-Ressources.md

TP Ressources

Contexte

La ressource est le concept clé de puppet. Elle représente de manière abstraite tout objet concret géré sur la machine.

Objectifs

Dans ce travail pratique nous allons:

  • nous familiariser avec la commande puppet
  • découvrir la sous-commande puppet resource
  • mettre en pratique nos connaissances de base de la syntaxe puppet
  • écrire notre premier manifest
  • compiler et appliquer notre premier catalogue

Prérequis

  • être connecté sur votre VM (instructions ici)

Exercice 1: découverte des ressources puppet

Nous allons utiliser la commande puppet resource afin de comprendre la correspondance entre le code puppet et l'état de la machine.

  1. Taper la commande puppet help et prendre connaissance de la sortie
  2. Taper la commande puppet help resource
  3. Utiliser la commande adéquate pour lister les types de ressources disponibles
  4. Utiliser la commande adéquate pour afficher toutes les ressources de type service
  5. En utilisant la commande puppet uniquement, afficher la version du logiciel cronie

Note

Le comportement des commandes ne sera pas le même en tant que l'utilisateur centos ou root. En effet, les privilèges nécessaires pour l'introspection du système peuvent limiter la sortie.

Exercice 2: découverte des facts

Nous allons manipuler les facts de la machine, véritable mine d'information décrivant l'état actuel de la machine (≠ état ciblé).

  1. Taper la commande facter
  2. Taper la commande facter os
  3. Taper la commande facter os.name
  4. Écrire le manifest suivant vi facts.pp
    $os_name = $facts['os']['name']
    notify { 'fact in puppet code':
        message => "The name of this machine's OS is `${os_name}`"
    }
  5. l'appliquer avec puppet apply facts.pp

Note

Cet exercice peut être effectué avec succès en tant que centos, vu que la ressource de type notify ne modifie pas réellement l'état du système, et ne nécessite donc aucun privilège.

Exercice 3: tache_planifiee.pp

Le logiciel cronie permet le lancement régulier de tâches sur Linux. Nous allons écrire un manifest simple permettant de configurer le nécessaire, à savoir:

  • Installer le logiciel
  • Activer le service
  • Configurer une tâche planifiée
  1. Créer un fichier tache_planifiee.pp. À partir de maintenant, au bout de chaque étape, appliquer le code en lançant la commande sudo puppet apply tache_planifiee.pp
  2. Ajouter une ressource de type package pour s'assurer de la présence du logiciel cronie. Indice: utiliser la sortie du dernier point de l'exercice précédent
  3. Ajouter une ressource de type cron pour mettre en place une tâche planifiée. La machine devra écrire la sortie de la commande /usr/bin/uptime dans le fichier /var/tmp/uptime toutes les minutes. Indice: s'inspirer de la sortie de la commande puppet resource cron.
  4. Ajouter une ressource de type service pour activer les tâches planifiées au niveau du système

Astuce

Vous pouvez utiliser la commande suivante pour appliquer un catalogue en mode "dry-run", càd en mode essai: puppet vous dira les ressources qu'il aurait modifié en mode normal:

puppet apply tache_planifiee.pp --noop