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:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Dann erstelle eine Datei in diesem Verzeichnis init.pp
und gib ein:
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',
}
}
Dann legen Sie die datas.xls
Datei in das files
Verzeichnis des Moduls - in diesem Beispiel in modules/mymodule/files/
. (Beachten Sie, dass es auch ein templates
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:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
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:
node server[0-9] inherits base {}
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:
sudo apt-get install puppet
Dann editieren /etc/default/puppet
und wechseln START=no
zu START=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:
server=puppet.mydomain.com
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 Sie sudo puppetca --list
und dann sudo 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
werden
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Andere 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
puppet --parseonly --ignoreimport myfile.pp
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:
sudo puppetd --test
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:
sudo puppetd --test --debug
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.