La marionnette est un peu un monstre pour faire tourner la tête, donc apprendre par l'exemple n'est pas une mauvaise chose. Dans le ci-dessous, je suppose que vous utilisez des modules - veuillez dire dans un commentaire si vous ne l'êtes pas ou si vous avez besoin de plus de détails sur la façon d'assembler le module.
Disons que vous démarrez un nouveau module appelé mymodule
. Dans le répertoire de base des marionnettes (généralement /etc/puppet
) sur le maître de marionnettes, vous devez créer le répertoire des manifestes et des fichiers du module:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Créez ensuite 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, placez le datas.xls
fichier dans le files
répertoire du module - dans cet exemple dans modules/mymodule/files/
. (Notez qu'il peut également y avoir un templates
répertoire pour les modèles ).
Dans le manifests/site.pp
fichier, 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 la base et que cela devrait être tout ce que vous devez faire. Depuis la marionnette 0.25, 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 précisions supplémentaires.
Configuration d'un client pour parler au maître des marionnettes
Sur le client, vous devez faire:
sudo apt-get install puppet
Ensuite, modifiez /etc/default/puppet
et changez START=no
en START=yes
.
Modifiez /etc/puppet/puppet.conf
et ajoutez également une ligne à la [main]
section pour lui indiquer 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 accéder au serveur maître de marionnettes et signer la clé client. Pour vérifier le nom exact que vous pouvez faire sudo puppetca --list
puis sudo puppetca --sign server1.mydomain.com
(ou quel que soit le nom du serveur à partir de la commande list).
Maintenant, lancez le service de marionnettes avec sudo service puppet start
et vous devriez être absent. Le service de marionnettes fonctionnera toutes les heures, donc si vous mettez à jour vos recettes de marionnettes, tous vos clients seront également mis à jour.
Suppression de fichiers
Je note dans la question d'origine que vous vouliez savoir comment supprimer des fichiers. Vous modifieriez le manifests/init.pp
pour être
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Autres conseils utiles
Si vous rencontrez des problèmes, vous pouvez faire certaines choses. Sur toute machine avec une marionnette installée, vous pouvez vérifier votre syntaxe en exécutant
puppet --parseonly --ignoreimport myfile.pp
ou vérifiez le tout en retirant le --ignoreimport
drapeau, bien que cela puisse conduire à des messages d'erreur amusants qui ne sont pas vraiment des erreurs que j'ai trouvées. Vous pouvez également exécuter puppet live sur une machine cliente de marionnettes en faisant:
sudo puppetd --test
qui montre diverses sorties utiles, avec des erreurs et des 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 sortie qu'il est difficile de passer à travers, alors ne faites cela que si vous avez déjà essayé les étapes précédentes et êtes coincé et avez besoin de voir tout ce qui se fait.
Notez que cela est basé sur la marionnette 0.25.x qui est ce que j'utilise actuellement, et c'est également la version d'Ubuntu 10.04. Le code de la marionnette dans la section principale fonctionnera certainement, mais les versions ultérieures de la marionnette ont de nouveaux indicateurs qui peuvent aider au débogage de la sortie.