Puppet (typy)
Toto je pouze reprezentativní výběr námi používaných typů. Pro kompletní dokumentaci viz Docs:Type Reference na oficiálních stránkách stránkách http://puppetlabs.com |
Přehled použitelných typů
cron
exec
file
file zajišťuje realizaci veškerých souborových operací.
Parametry
backup
Parametr říká jaké má být cílové úložiště pro zálohu souboru. Defaultně zakládá démon puppetmaster přes typ filebucket úložiště main
u sebe na serveru.
file {"cesta_k_souboru/soubor.txt": source => "/cesta_odkud_se_bere/soubor.txt", backup => main }
Ve výše uvedeném případě, pokud se soubor soubor.txt
liší od verze kopírované z výchozího zdroje, provede agent před nahrazením zálohu do úložiště main.
checksum
Tímto parametrem lze změnit, podle čeho má agent provádět ověření souboru. Výchozí je výpočet kontrolního součtu z obsahu souboru (md5), ale lze kontrolovat i jiné parametry. Což výrazně zkracuje čas který agent stráví ověřováním. Obzvlátě tam, kde jsou přes puppet spravovány velké soubory.
- md5
- md5lite
- mtime
- ctime
- none
content
Hodnota, kterou parametr obsahuje se "nalije" do vytvořeného dokumentu. V manifestu lze použít přímo řetězec, ale i obsah proměnné
owner
purge
replace
source
sourceselect
target
filebucket
Přes typ filebucket se nastavuje úložiště které agent může použít, je-li nastaven parametr backup u file. Samo o sobě je toto nastavení k ničemu, není-li použito.
filebucket {'main': server => puppet, path => false }
Má-li se používat jako výchozí, musí být to být v manifestu nastaveno:
File { backup => main }
Při ověřování se agent v tomto úložišti zeptá, jestli je kontrolní md5 součet souboru který se má nahradit stejný jako má ten soubor co je v úložišti. Pokud ano, tak krok při kterém by měl provést zálohu přeskočí, jelikož není nutný.
Parametry
name
Jméno vzdáleného úložiště.
path
Parametr může mít booleanovskou hodnotu true nebo false.
Je-li hodnota parametru true', použije agent lokální úložiště na klientském nodu.
port
Číslo portu na kterém naslouchá vzdálený server. Pro puppetmaster je výchozí port 8140
server
Doménové jméno serveru, který slouží jako vzdálené úložiště.
Není-li parametr uveden, zkontroluje agent nejprve hodnotu parametru path. Je-li nastaven na true použije lokální úložiště. V opačném případě odzálohuje soubor do výchozího úložiště na stroji kde běží puppetmaster. Tzn. aby agent zálohoval do vzdáleného úložiště musí mít path hodnotu false
group
Parametry
ensure
gid
members
name
provider
system
host
interface
mount
notify
Přes notify lze nastavit zprávu, kterou má agent poslat do logu při zpracování onoho bodu manifestu, kam je vložena.
notify { "Zpráva která se má poslat do logu":; }
Jul 30 18:37:19 git puppet-agent[24898]: Zpráva která se má poslat do logu Jul 30 18:37:19 git puppet-agent[24898]: (/Stage[main]/Git::Config/Notify[Zpráva která se má poslat do logu]/message) defined 'message' as 'Zpráva která se má poslat do logu'
notify { "Zpráva která se má poslat do logu": withpath => true }
Jul 30 18:38:41 git puppet-agent[25045]: (/Stage[main]/Git::Config/Notify[Zpráva která se má poslat do logu]/message) Zpráva která se má poslat do logu Jul 30 18:38:41 git puppet-agent[25045]: (/Stage[main]/Git::Config/Notify[Zpráva která se má poslat do logu]/message) defined 'message' as 'Zpráva která se má poslat do logu'
package
Typ package s parametrem ensure
nastaveným na installed (nainstalováno)
package { "strace": ensure => "installed" }
Typ package pracuje vždy s výchozím manažerem instalačních balíčků. To však nemusí vždy být zrovna ten, který preferujete. Někdo kupř. upřednostňuje místo konzolových nástrojů pro APT aptitude. Výchozího správce balíků lze nastavit jako hodnotu parametru provider . U Debianu připadají v úvahu prakticky tři možnosti:
Z hlediska základní funkcionality mají všechny tři možnosti zhruba stejné možnosti |
V případě že je třeba nainstalovat více balíčků najednou, lze buď pro každý balík nastavit samostatný typ package ..
package { "strace": ensure => "installed" } package { "screen": ensure => "installed" } package { "less": ensure => "installed" }
Nebo - v případě, že u všech balíků má být hodnota parametru ensure
stejná - lze zápis zjednodušit nastavením globální hodnoty parametru ensure
. Pro typ package, pak bude Puppet automaticky předpokládat že hodnota parametru ensure
je installed.
Package { ensure => "installed" } package { "strace": } package { "screen": } package { "less": }
Místo tupého opakování konfigurace typu package lze s výhodou použít pole:
$baliky = [ "strace", "screen", "less" ] package { $baliky: ensure => "installed" }
Resp.
Package { ensure => "installed" } $baliky = [ "strace", "screen", "less" ] package { $baliky:}
Má-li puppet provádět i automatické aktualizace balíků, pak musí být hodnota parametru ensure latest (nejaktuálnější), nikoliv installed
|
Odebrání balíčku
Aby balíček nebyl nainstalován, resp. v případě že již nainstalován byl byl také odebrán zajistí hodnota ensure
absent (nenainstalovaný), resp purged (kompletně odebraný)
Hodnota purged zajistí, že manažer instalačních balíčků odstraní i veškeré pozůstalé konfigurační soubory |
resources
schedule
service
ssh_authorized_key
Puppet (typy) ssh authorized key