Kukiełka jest trochę potworem, który pomaga ci się skupić, więc uczenie się na przykładzie nie jest niczym złym. Poniżej zakładam, że używasz modułów - w komentarzu powiedz, jeśli nie jesteś, lub jeśli potrzebujesz więcej informacji o tym, jak złożyć moduł razem.
Załóżmy, że uruchamiasz nowy moduł o nazwie mymodule. W katalogu domowym marionetek (zwykle /etc/puppet) w głównym marionetce należy utworzyć katalog manifestów i plików:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Następnie utwórz plik w tym katalogu o nazwie init.ppi wprowadź:
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',
}
}
Następnie umieść datas.xlsplik w katalogu modułu files- w tym przykładzie w modules/mymodule/files/. (Uwaga: może istnieć również templateskatalog szablonów ).
W manifests/site.pppliku musisz zaimportować moduł i dołączyć klasę, wykonując coś takiego:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Upewnij się, że wszystkie twoje węzły dziedziczą od podstawy i to powinno być wszystko, co musisz zrobić. Począwszy od kukiełki 0.25 możesz używać wyrażeń regularnych w nazwie węzła, np .:
node server[0-9] inherits base {}
Daj mi znać w komentarzach, jeśli potrzebujesz dodatkowych wyjaśnień.
Konfigurowanie klienta do rozmowy z mistrzem marionetek
Na kliencie musisz wykonać:
sudo apt-get install puppet
Następnie edytuj /etc/default/puppeti zmień START=nona START=yes.
Edytuj /etc/puppet/puppet.confi dodaj wiersz do [main]sekcji, aby powiedzieć mu, gdzie znaleźć mistrza marionetek:
server=puppet.mydomain.com
Następnie możemy wykonać uruchomienie testowe sudo puppetd --test. Jeśli pojawią się błędy klucza, może być konieczne przejście do głównego serwera kukiełkowego i podpisanie klucza klienta. Aby sprawdzić dokładną nazwę, którą możesz zrobić, sudo puppetca --lista następnie sudo puppetca --sign server1.mydomain.com(lub inną nazwę serwera z polecenia list).
Teraz rozpocznij służbę marionetek sudo service puppet starti powinieneś być daleko. Usługa lalek będzie działać co godzinę, więc jeśli zaktualizujesz swoje przepisy na marionetki, wszyscy klienci również zostaną zaktualizowani.
Usuwanie plików
W oryginalnym pytaniu zauważam, że chciałeś wiedzieć, jak usunąć pliki. Zmodyfikowałbyś manifests/init.ppto
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Inne przydatne wskazówki
Jeśli masz problemy, możesz zrobić kilka rzeczy. Na dowolnej maszynie z zainstalowaną marionetką możesz sprawdzić swoją składnię, uruchamiając
puppet --parseonly --ignoreimport myfile.pp
lub sprawdź wszystko, wyjmując --ignoreimportflagę, ale może to prowadzić do śmiesznych komunikatów o błędach, które tak naprawdę nie są błędami, które znalazłem. Możesz również uruchomić program kukiełkowy na żywo na maszynie klienta kukiełkowego, wykonując:
sudo puppetd --test
który pokazuje różne przydatne dane wyjściowe, z błędami i ostrzeżeniami podświetlonymi w różnych kolorach. Jeśli chcesz jeszcze więcej szczegółów, możesz uruchomić:
sudo puppetd --test --debug
ale generalnie generuje tyle mocy wyjściowej, że trudno się z nią przedzierać, więc rób to tylko wtedy, gdy już wypróbowałeś poprzednie kroki i utknąłeś i musisz zobaczyć, jak wszystko jest zrobione.
Zauważ, że jest to oparte na marionetce 0.25.x, której obecnie używam w pracy, a także wersji w Ubuntu 10.04. Kod lalek w sekcji głównej na pewno nadal będzie działał, ale późniejsze wersje lalek mają nowe flagi, które mogą pomóc w debugowaniu danych wyjściowych.