Puppet est un peu un monstre dont il faut s'imprégner, alors apprendre par l'exemple n'est pas une mauvaise chose. Dans le texte qui suit, je suppose que vous utilisez des modules. Si ce n'est pas le cas ou si vous avez besoin de plus de détails sur la façon d'assembler le module, veuillez le signaler dans un commentaire.
Disons que vous démarrez un nouveau module appelé mymodule
. Dans le répertoire d'origine de Puppet (généralement /etc/puppet
) sur le maître de Puppet, vous devez créer le répertoire des manifestes et des fichiers du module :
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Ensuite, créez un fichier dans ce répertoire nommé init.pp
et entrez :
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Ensuite, mettez le datas.xls
dans le fichier files
dans le répertoire - dans cet exemple dans modules/mymodule/files/
. (Notez qu'il peut aussi y avoir un templates
pour modèles ).
Dans le manifests/site.pp
vous devez importer le module et inclure la classe en faisant quelque chose comme :
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Assurez-vous que tous vos nœuds héritent de base et cela devrait être tout ce que vous avez à faire. Depuis la version 0.25 de Puppet, vous pouvez utiliser des expressions régulières dans le nom du nœud, par exemple :
node server[0-9] inherits base {}
Faites-moi savoir dans les commentaires si vous avez besoin de plus de précisions.
Configurer un client pour parler au maître de Puppet
Sur le client, vous devez faire :
sudo apt-get install puppet
Puis modifier /etc/default/puppet
et le changement START=no
à START=yes
.
Modifier également /etc/puppet/puppet.conf
et ajoutez une ligne à la [main]
pour lui dire où trouver le maître des marionnettes :
server=puppet.mydomain.com
Ensuite, nous pouvons faire un test avec sudo puppetd --test
. Si vous obtenez des erreurs de clé, vous devrez peut-être vous rendre sur le serveur maître de Puppet et signer la clé du client. Pour vérifier le nom exact, vous pouvez faire sudo puppetca --list
et ensuite sudo puppetca --sign server1.mydomain.com
(ou le nom du serveur indiqué par la commande list).
Maintenant, démarrez le service Puppet avec sudo service puppet start
et tu devrais être loin. Le service Puppet s'exécute toutes les heures, donc si vous mettez à jour vos recettes Puppet, tous vos clients seront également mis à jour.
Suppression de fichiers
Je note que dans la question initiale, vous vouliez savoir comment supprimer des fichiers. Vous devez modifier le manifests/init.pp
à être
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Autres conseils utiles
Si vous rencontrez des difficultés, il y a plusieurs choses que vous pouvez faire. Sur toute machine sur laquelle Puppet est installé, vous pouvez vérifier votre syntaxe en exécutant
puppet --parseonly --ignoreimport myfile.pp
ou vérifier l'ensemble en sortant le --ignoreimport
bien que cela puisse conduire à de drôles de messages d'erreur qui ne sont pas vraiment des erreurs, comme je l'ai constaté. Vous pouvez également exécuter Puppet en direct sur une machine cliente de Puppet en faisant :
sudo puppetd --test
qui affiche divers résultats utiles, avec les erreurs et les avertissements mis en évidence dans différentes couleurs. Si vous voulez encore plus de détails, vous pouvez exécuter :
sudo puppetd --test --debug
mais cela génère généralement tellement de résultats qu'il est difficile de s'y retrouver, alors ne le faites que si vous avez déjà essayé les étapes précédentes et que vous êtes bloqué et avez besoin de voir tout ce qui est fait.
Notez que ceci est basé sur Puppet 0.25.x qui est ce que j'utilise actuellement au travail, et qui est aussi la version dans Ubuntu 10.04. Le code de Puppet dans la section principale fonctionnera certainement encore, mais les versions ultérieures de Puppet ont de nouveaux drapeaux qui peuvent aider à déboguer la sortie.