Puppet - Fichiers Manifest

Dans Puppet, tous les programmes écrits en utilisant le langage de programmation Ruby et enregistrés avec une extension de .pp sont appelés manifests. En termes généraux, tous les programmes Puppet qui sont construits avec l'intention de créer ou de gérer une machine hôte cible sont appelés un manifeste. Tous les programmes écrits en Puppet suivent le style de codage Puppet.

Le cœur de Puppet est la façon dont les ressources sont déclarées et comment ces ressources représentent leur état. Dans n'importe quel manifeste, l'utilisateur peut avoir une collection de différents types de ressources qui sont regroupées à l'aide d'une classe et d'une définition.

Dans certains cas, le manifeste Puppet peut même avoir une instruction conditionnelle afin d'obtenir un état souhaité. Cependant, en fin de compte, tout se résume à s'assurer que toutes les ressources sont définies et utilisées de la bonne manière et que le manifeste défini lorsqu'il est appliqué après avoir été converti en catalogue est capable d'exécuter la tâche pour laquelle il a été conçu.

Flux de travail du fichier manifeste

Le manifeste de marionnettes comprend les composants suivants:

  • Files (ce sont des fichiers simples où Puppet n'a rien à voir avec eux, juste pour les ramasser et les placer à l'emplacement cible)

  • Resources

  • Templates (ceux-ci peuvent être utilisés pour construire des fichiers de configuration sur le nœud).

  • Nodes (toute la définition relative à un poste client est définie ici)

  • Classes

Points à noter

  • Dans Puppet, tous les fichiers manifestes utilisent Ruby comme langage de codage et sont enregistrés avec .pp extension.

  • L'instruction "Import" dans de nombreux manifestes est utilisée pour charger des fichiers au démarrage de Puppet.

  • Afin d'importer tous les fichiers contenus dans un répertoire, vous pouvez utiliser l'instruction import d'une autre manière comme importer 'clients / *'. Cela importera tout.pp fichiers dans ce répertoire.

Rédaction de manifestes

Travailler avec des variables

Lors de l'écriture d'un manifeste, l'utilisateur peut définir une nouvelle variable ou utiliser une variable existante à tout moment dans un manifeste. Puppet prend en charge différents types de variables, mais peu d'entre elles sont fréquemment utilisées telles que les chaînes et les tableaux de chaînes. En dehors d'eux, d'autres formats sont également pris en charge.

Exemple de variable de chaîne

$package = "vim"  

package {  $package: 
   ensure => "installed" 
}

Utilisation de boucles

Les boucles sont utilisées lorsque l'on souhaite effectuer plusieurs itérations sur un même ensemble de code jusqu'à ce qu'une condition définie soit remplie. Ils sont également utilisés pour effectuer des tâches répétitives avec différents ensembles de valeurs. Création de 10 tâches pour 10 choses différentes. On peut créer une seule tâche et utiliser une boucle pour répéter la tâche avec différents packages que l'on souhaite installer.

Le plus souvent, un tableau est utilisé pour répéter un test avec des valeurs différentes.

$packages = ['vim', 'git', 'curl']  

package { $packages: 
   ensure => "installed" 
}

Utilisation des conditions

Puppet prend en charge la plupart des structures conditionnelles qui peuvent être trouvées dans les langages de programmation traditionnels. La condition peut être utilisée pour définir dynamiquement s'il faut exécuter une tâche particulière ou si un ensemble de code doit être exécuté. Comme les instructions if / else et case. De plus, les conditions telles que l'exécution prendront également en charge les attributs qui fonctionnent comme une condition, mais n'acceptent qu'une sortie de commande comme condition.

if $OperatingSystem != 'Linux' { 
   warning('This manifest is not supported on this other OS apart from linux.') 
} else { 
   notify { 'the OS is Linux. We are good to go!': }
}