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.pp
i 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.xls
plik w katalogu modułu files
- w tym przykładzie w modules/mymodule/files/
. (Uwaga: może istnieć również templates
katalog szablonów ).
W manifests/site.pp
pliku 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/puppet
i zmień START=no
na START=yes
.
Edytuj /etc/puppet/puppet.conf
i 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 --list
a następnie sudo puppetca --sign server1.mydomain.com
(lub inną nazwę serwera z polecenia list).
Teraz rozpocznij służbę marionetek sudo service puppet start
i 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.pp
to
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 --ignoreimport
flagę, 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.