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

Puppet (funkce) 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,",")