Puppet (environment)
Puppet umožňuje v rámci jednoho stroje master vytvářet vzájemně nezávislá prostředí (environment).
Každé z nich může mít svůj vlastní manifest i sadu modulů, takže lze udržovat paralelně vedle sebe moduly určené k nasazení v produkčním prostředí s moduly v testovacím prostředí, které se připravují pro budoucí produkční nasazení.
Výchozí prostředí, se jmenuje production a tento název je i výchozí hodnotou proměnné $enviroments , kterou používá agent na klientském nodu, pokud se mu nenastaví žádné jiné prostředí.
|
Vytvoření testovacího prostředí na stroji master
Do verze 3.6 Puppet akceptoval jako nové prostředí každý blok v konfiguračním souboru /etc/puppet.conf
na stroji master, který nepatřil mezi systémové konfigurační bloky (main, master, agent, user).
[jmeno_prostredi]
manifest = $confdir/$environment/manifests/site.pp
modulepath = $confdir/$environment/modules
|
Názvem prostředí, uloženým do proměnné $environment
, bylo jméno tohoto bloku. A tuto proměnnou bylo možné využít v nastavení cest k výchozímu manifestu a modulům. Pro toto prostředí ale musel existovat odpovídající adresář s obdobnou stromovou strukturou manifestu, jako u produkčního prostředí.
Od verze 3.6 však jsou akceptovány v konfiguračním souboru pouze systémové konfigurační bloky a jiné prostředí než je výchozí produkční lze vytvořit mnohem jednodušeji tak, že se v bloku main, nebo master uvede do proměnné $enviromentpath
cesta k adresáři v němž je podadresář s konfiguračním manifestem prostředí. Jeho název je automaticky názvem proměnné $environment
se kterou pracuje klient.
environmentpath = $confdir/environment
|
Cest k prostředí lze nastavit i více. V takovém případě musí být odděleny dvojtečkou.
Každý adresář s vytvořeným prostředím může obsahovat kromě podadresářů manifests
a modules
také konfigurační soubor enviroment.conf
, ve kterém lze změnit výchozí proměnné specifické pro toto prostředí:
- modulepath
- Cestu k modulům
- manifest
- Cestu k výchozímu manifestu
- config_version
- Číslo verze
- environment_timeout
- Časový interval po který mají být uchovávány dočasné soubory prostředí
Aplikace testovacího prostředí na straně agenta
Pokud se spouští na straně klienta agent jako démon a chceme aby používal místo produkčního prostředí moduly z testovacího prostředí s názvem jmeno_prostredi
, pak je třeba do konfigračního souboru /etc/puppet.conf
na straně klienta nastavit v sekci agent
jako hodnotu proměnné environment jeho jméno.
[agent]
environment = jmeno_prostredi
|