Puppet (typy)
Kromě funkcí které jsou již integrovány, lze tvořit funkce vlastní, prostřednictvím direktivy define
V uvedeném příkladu je v nadefinované uživatelské funkci kontejner zavolaná vestavěná funkce inline_template, která zajistí, že složený řetězec bude interpretován jako šablona
Je-li pak Do nadefinovaného typu s názvem kontejner
se pošle řetězec obsažený v proměnné $konfigurak_ke_zpracovani
. Ten pak na tento řetězcový obsah aplikuje funkci scope.lookupvar která ověřuje výskyt nastavení proměnné s názvem VARIABLE.
Pokud se v řetězci takové nastavení vyskytne, je tato proměnná interpretována šablonou vytvořenou funkcí inline_template a výsledek zpracování je pak skrze notify zapsán do logu.
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 |
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
resources
schedule
service
ssh_authorized_key
Puppet (typy) ssh authorized key