J'ai installé puppetmaster dans ubuntu 11.04 et j'ai installé puppetmaster sur tous mes clients. J'ai rejoint tous mes clients marionnettes avec le maître marionnette. Est-il possible de copier un fichier sur tous ces clients de marionnettes depuis le maître de marionnettes?
Par exemple:
J'ai le fichier nommé datas.xls dans mon bureau (Puppet Master). Comment copier ces fichiers sur tous mes clients marionnettes à l'emplacement suivant (/ home / operator1 / Desktop / Backup /)?
Mise à jour:
- Salut, le fichier n'est pas partagé.
- Comment modifier cette ligne
puppet:///modules/module_name/datas.xls
le fichier à copier est sous cet emplacement/etc/puppet/modules/mymodule/manifests/datas.xls
?
Erreur sur le client: (résolu)
root@testing:~# puppetd --test
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Erreur 2 sur le client:
root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/
Nouvelle mise à jour:
Comment appliquer ce module à tous les nœuds? Telle que le fichier sera copié sur tous les nœuds.
Réponses:
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:Créez ensuite un fichier dans ce répertoire nommé
init.pp
et entrez:Ensuite, placez le
datas.xls
fichier dans lefiles
répertoire du module - dans cet exemple dansmodules/mymodule/files/
. (Notez qu'il peut également y avoir untemplates
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: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:
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:
Ensuite, modifiez
/etc/default/puppet
et changezSTART=no
enSTART=yes
.Modifiez
/etc/puppet/puppet.conf
et ajoutez également une ligne à la[main]
section pour lui indiquer où trouver le maître des marionnettes: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 fairesudo puppetca --list
puissudo 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 êtreAutres 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
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: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:
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.
la source
puppet:///modules/module_name/datas.xls
le fichier à copier se trouve sous cet emplacement/etc/puppet/modules/mymodule/manifests/datas.xls
/etc/puppet/modules/mymodule/files/datas.xls
- je mettrai à jour la réponse pour être plus clair à ce sujet.puppet agent --test