Puppet (funkce)

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

Puppet umožňuje při generování manifestů používat také funkce. Kromě integrovaných funkcí lze vytvořit a používat také vlastní funkce.

Funkce je kontejner, definovaný direktivou define, ve kterém je kód, který může dále zpracovávat hodnoty předané přes parametry, nebo na jejich základě modifikovat obsah manifestu. Z hlediska použití se taková funkce chová stejně jako ty integrované.


Volání funkce bez parametru

Poznámka
define funkce {
      notify { "Do funkce je předán pouze parametr - $name":; }
}
 
funkce { 'jmeno':; }

Výsledkem zavolání této funkce by bylo pouze vypsání textového řetězce 'Do funkce je předán pouze parametr - jmeno' do logu klienta (přes notify). Nicméně k demonstraci výsledku tento jednoduchý příklad stačí.

Je-li místo konkrétního jména předáno pole, nebo proměnná, která pole obsahuje, volá se funkce pro každou položku pole zvlášť, přičemž obsah proměnné $name bude vždy odpovídat této položce. Více v následujícím příkladu.

Volání funkce s parametrem

Funkci lze volat také s parametrem.

Poznámka
define funkce($parametr) {
      notify { "Hodnota parametru parametr je u položky $name - $parametr":; }
}
 
funkce { [ "A", "B", "C" ]:
      parametr => "platná"
}
funkce { [ "D", "E", "F" ]:
      parametr => "neplatná"
}

Výsledkem výše uvedeného kódu by byly následující vypsané řetězce:

Poznámka
notice: /Stage[main]//Funkce[C]/Notify[Hodnota parametru parametr je u poloÅky C - platnÃ]/
message: is absent, should be Hodnota parametru parametr je u poloÅky C - platnà (noop)
notice: /Stage[main]//Funkce[F]/Notify[Hodnota parametru parametr je u poloÅky F - neplatná]/
message: is absent, should be Hodnota parametru parametr je u poloÅky F - neplatná (noop)
notice: /Stage[main]//Funkce[A]/Notify[Hodnota parametru parametr je u poloÅky A - platnÃ]/
message: is absent, should be Hodnota parametru parametr je u poloÅky A - platnà (noop)
notice: /Stage[main]//Funkce[D]/Notify[Hodnota parametru parametr je u poloÅky D - neplatná]/
message: is absent, should be Hodnota parametru parametr je u poloÅky D - neplatná (noop)
notice: /Stage[main]//Funkce[B]/Notify[Hodnota parametru parametr je u poloÅky B - platnÃ]/
message: is absent, should be Hodnota parametru parametr je u poloÅky B - platnà (noop)
notice: /Stage[main]//Funkce[E]/Notify[Hodnota parametru parametr je u poloÅky E - neplatná]/
message: is absent, should be Hodnota parametru parametr je u poloÅky E - neplatná (noop)



Přehled vestavěných funkcí

Poznámka Toto je pouze úzký výběr námi používaných funkcí. Pro kompletní dokumentaci viz Docs:Type Reference na oficiálních stránkách stránkách http://puppetlabs.com

file

Funkce se dá použít v podmínkách vložení pravdivostní hodnoty do proměnné, kterou lze následně využít v podmínkách.

$etckeeper = file('/etc/.git')

Vrací True pokud na na straně agenta existuje /etc/.git.

include

Puppet (funkce) include

inline_template

regsubst

Puppet (funkce) regsubst

require

Puppet (funkce) require

split

Funkce rozseká obsah proměnné, která je předaná jako první parametr. Jako rozdělovací řetězec použije řetězec, který následuje jako parametr druhý.

$sekana = split($retezec,",")