Ich habe Puppetmaster in Ubuntu 11.04 installiert und ich habe Puppet in allen meinen Clients installiert. Ich habe alle meine Puppenkunden mit Puppenmeister verbunden. Ist es möglich, eine Datei vom Puppenmeister auf alle diese Puppenkunden zu kopieren?
Beispielsweise:
Ich habe die Datei datas.xls auf meinem Desktop (Puppet Master). Wie kopiere ich diese Dateien auf alle meine Puppet-Clients im folgenden Verzeichnis (/ home / operator1 / Desktop / Backup /)?
Aktualisieren:
- Hallo, die Datei wird immer noch nicht freigegeben.
- Wie kann
puppet:///modules/module_name/datas.xls
ich diese Zeile ändern, in der sich die zu kopierende Datei befindet/etc/puppet/modules/mymodule/manifests/datas.xls
?
Fehler auf dem Client: (behoben)
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
Fehler 2 auf dem 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/
Neues Update:
Wie wende ich dieses Modul auf alle Knoten an? Damit wird die Datei auf alle Knoten kopiert.
Antworten:
Puppet ist ein kleines Monster, um den Kopf in den Kopf zu bekommen, also ist es keine schlechte Sache, mit gutem Beispiel zu lernen. Im Folgenden gehe ich davon aus, dass Sie Module verwenden. Bitte geben Sie in einem Kommentar an, ob Sie keine Module verwenden oder ob Sie weitere Informationen zum Zusammenstellen des Moduls benötigen.
Angenommen, Sie starten ein neues Modul mit dem Namen
mymodule
. Im Puppet-Home-Verzeichnis (normalerweise/etc/puppet
) auf dem Puppet-Master sollten Sie die Modulmanifeste und das Dateiverzeichnis erstellen:Dann erstelle eine Datei in diesem Verzeichnis
init.pp
und gib ein:Dann legen Sie die
datas.xls
Datei in dasfiles
Verzeichnis des Moduls - in diesem Beispiel inmodules/mymodule/files/
. (Beachten Sie, dass es auch eintemplates
Verzeichnis für Vorlagen geben kann ).In der
manifests/site.pp
Datei müssen Sie das Modul importieren und die Klasse einschließen, indem Sie Folgendes tun:Stellen Sie sicher, dass alle Ihre Knoten von base erben und dass dies alles ist, was Sie tun müssen. Ab Puppet 0.25 können Sie reguläre Ausdrücke im Knotennamen verwenden, zB:
Lassen Sie mich in Kommentaren wissen, wenn Sie weitere Erläuterungen benötigen.
Richten Sie einen Client ein, um mit dem Puppenmeister zu sprechen
Auf dem Client müssen Sie Folgendes tun:
Dann editieren
/etc/default/puppet
und wechselnSTART=no
zuSTART=yes
.Bearbeiten Sie
/etc/puppet/puppet.conf
auch den[main]
Abschnitt und fügen Sie eine Linie hinzu, um anzugeben, wo sich der Puppenmeister befindet:Dann können wir einen Testlauf mit machen
sudo puppetd --test
. Wenn Sie Schlüsselfehler erhalten, müssen Sie möglicherweise zum Puppet Master-Server weitergehen und den Client-Schlüssel signieren. Um den genauen Namen zu überprüfen, können Siesudo puppetca --list
und dannsudo puppetca --sign server1.mydomain.com
(oder was auch immer der Servername aus dem Befehl list war).Starten Sie nun den Puppenservice mit
sudo service puppet start
und Sie sollten abwesend sein. Der Puppenservice wird stündlich ausgeführt. Wenn Sie also Ihre Puppenrezepte aktualisieren, werden auch alle Ihre Kunden aktualisiert.Dateien löschen
Ich stelle in der ursprünglichen Frage fest, dass Sie wissen wollten, wie man Dateien löscht. Du würdest das bearbeiten
manifests/init.pp
werdenAndere nützliche Tipps
Wenn Sie Probleme haben, können Sie einige Dinge tun. Auf jedem Computer mit installierter Marionette können Sie Ihre Syntax überprüfen, indem Sie ausführen
oder überprüfe die ganze Menge, indem
--ignoreimport
du die Flagge entfernst, obwohl das zu einigen lustigen Fehlermeldungen führen kann, die nicht wirklich Fehler sind, die ich gefunden habe. Sie können Puppet auch live auf einem Puppet-Client-Computer ausführen, indem Sie folgende Schritte ausführen:Hier werden verschiedene nützliche Ausgaben angezeigt, wobei Fehler und Warnungen in verschiedenen Farben hervorgehoben werden. Wenn Sie noch mehr Details möchten, können Sie Folgendes ausführen:
Aber das erzeugt im Allgemeinen so viel Output, dass es schwierig ist, durchzuwaten. Tun Sie dies nur, wenn Sie die vorherigen Schritte bereits ausprobiert haben und nicht weiterkommen und sehen müssen, dass alles erledigt wird.
Beachten Sie, dass dies auf Puppet 0.25.x basiert, was ich derzeit bei der Arbeit verwende, und auch die Version in Ubuntu 10.04 ist. Der Puppet-Code im Hauptabschnitt wird auf jeden Fall noch funktionieren, aber spätere Versionen von Puppet haben neue Flags, die beim Debuggen der Ausgabe helfen können.
quelle
puppet:///modules/module_name/datas.xls
die zu kopierende Datei an diesem Ort/etc/puppet/modules/mymodule/manifests/datas.xls
/etc/puppet/modules/mymodule/files/datas.xls
- ich aktualisiere die Antwort, um diesbezüglich klarer zu sein.puppet agent --test