Puppet (instalace)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Většina linuxových distribucí má obě části Puppetu - klienta i server ve svých repozitářích a umožňuje tak provést instalaci přes standardní balíčkovací systém.

Výchozí konfigurace - tj. nastavení cest k adresářům, atp. - však nemusí být všude stejná a může se mírně lišit. Následující postupy a příklady byly realizovány v rámci distribuce Debian wheezy amd64, s aktuální verzí Puppetu 2.7.18.

Poznámka Pro archivaci veškerých změn při úpravách manifestů na serveru je vhodné používat nějaký verzovací systém. Obecně je doporučován git. Pokud je na stroji nainstalován etckeeper, tak v podstatě není třeba nic víc řešit, pouze je třeba po každé úpravě provést uložení aktuálních změn, včetně komentáře a v případě certifikátů přidat odpovídající nově vzniklé soubory do repozitáře.

master

Abychom mohli Puppet používat, musíme mít stroj který bude fungovat jako server - master. S ním pak budou komunikovat agenti z ostatních nodů.

Serverová část Puppetu je v Debianu součástí balíku, který se jmenuje puppetmaster. Nainstalovat ji lze přes APT, který by se měl postarat o splnění potřebných závislostí[1]:

Poznámka
 root@master~# apt-get install puppetmaster

http://www.thingsidoinlinuxwhenbored.info/?p=38

Poznámka U výchozí konfigurace serveru na Debianu je úložiště SSL certifikátů v adresáři /var/lib/puppet/ssl. Puppet však používá - není-li uvedeno jinak - jako výchozí adresář /etc/puppet/ssl.

Je-li obsah /etc udržován přes git a etckeeper, je výhodnější používat výchozí nastavení Puppetu. Řádek s nastavením proměnné ssldir v konfiguračním souboru /etc/puppet/puppet.conf stačí zakomentovat a adresář s ssl certifikáty přesunout.


Spouštění serverové části aplikace

To zda démon puppetmaster opravdu běží můžete ověřit buď přímo dotazem přes init skript

Poznámka
 root@master~# /etc/init.d/puppetmaster status
 [ ok ] master is running.

nebo tím, že zkontrolujete zda-li proces master běží

Poznámka
 root@master~# ps -ef | grep master
 puppet    1849     1  0 srp02 ?        00:16:28 /usr/bin/ruby1.8 /usr/bin/puppet master

Pokud master neběží, tak se musí předtím, než se začne pracovat s klientem nahodit a to buď před init skript

Poznámka
 root@master~# /etc/init.d/puppetmaster start

nebo manuálně příkazem na řádce[2], chceme-li mít server spuštěný v ladícím režimu:

Poznámka
 root@master~# puppet master --verbose --debug

agent

Master - stroj na kterém je nainstalován balík puppetmaster a běží démon, který komunikuje s agenty obvykle začínáme puppetizovat jako první. To znamená, že i na něm musí být nainstalován agent

V Debianu se balík pro klienta jmenuje puppet a i jeho instalaci lze provést přes APT:

Poznámka
 root@master~# apt-get install puppet

Žádost o certifikát a jeho podepsání

root@stroj:/etc# puppet agent --noop --test --verbose --server master.felk.cvut.cz
dnsdomainname: Name or service not known
info: Creating a new SSL key for stroj.felk.cvut.cz
info: Caching certificate for ca
info: Creating a new SSL certificate request for stroj.felk.cvut.cz
info: Certificate Request fingerprint (md5): 93:44:BC:C1:9F:1D:7E:6D:83:BD:24:E7
:9A:0A:B3:82
Exiting; no certificate found and waitforcert is disabled


Na stroji master:

master (KVM) :~# puppet cert list
  "stroj.felk.cvut.cz" (93:44:BC:C1:9F:1D:7E:6D:83:BD:24:E7:9A:0A:B3:82)
 
master (KVM) :~# puppet cert sign stroj.felk.cvut.cz
notice: Signed certificate request for stroj.felk.cvut.cz
notice: Removing file Puppet::SSL::CertificateRequest stroj.felk.cvut.cz at '/etc/puppet/ssl/ca/requests/stroj.felk.cvut.cz.pem'

Po podepsání certifikátu je třeba nakonfigurovat nod v manifestu, nemá-li nastaven default.


Upozornění Ve výchozí konfiguraci je automatické spouštění agenta v souboru /etc/default/puppet zakázáno (v proměnné START). Povolte ho, až když budete mít připravený použitelný manifest.


  1. Ale nemusí. Nastavení potřebných závislostí je totiž u Debianu záležitostí maintainera balíku, který mohl nějaký balík opomenout.
  2. http://docs.puppetlabs.com/man/master.html - viz manuálová stránka