Puppet - konfigurační soubory
Na serveru i na klienském nodu je hlavní konfigurační soubor puppet.conf, který spuštěný démon průběžně kontroluje a případné změny ihned aplikuje.
Pokud Puppet neběží pod rootem (na unixových systémech), nebo se zvýšenými právy (na Windows), hledá démon tento soubor v podadresáři .puppet
, v rámci domovského adresáře uživatele pod kterým je spuštěn. Linuxové distribuce jej však mají obvykle umístěn v adresář /etc/puppet
.
Umístění konfigurace však lze přenastavit při spuštění agenta skrze proměnnou $confdir
. Pokud nevíte odkud spuštěný démon bere svou konfiguraci můžete použít následující příkaz
user@stroj~$ sudo puppet agent --configprint confdir
- Windows 2003
$confdir
obsahuje%ALLUSERSPROFILE%\PuppetLabs\puppet\etc
, což je expandováno naC:\Documents and Settings\All Users\Application Data\PuppetLabs\puppet\etc
- Windows 7, Windows 2008
$confdir
obsahuje%PROGRAMDATA%\PuppetLabs\puppet\etc
, což je expandováno naC:\ProgramData\PuppetLabs\puppet\etc
Na Windows soubor puppet.conf používá konce řádek CRLF, kdežto na unixu pouze LF!
|
auth.conf
fileserver.conf
Ve výchozím nastavení Puppet automaticky hledá soubory v adresáři files u modulů. To však za určitých okolností nemusí být zrovna praktické - kupř. pokud spravujeme konfiguraci Puppetu přes git a nechceme aby součástí tohoto repozitáře byly SSH klíče aj. soubory
V takovém případě lze prostřednictvím tohoto konfiguračního souboru konfigurovat úložiště jiná.. Cestu k tomuto souboru lze změnit proměnnou fileserverconfig
puppet.conf
Soubor používá stejnou syntaxi jako INI soubory. Konfigurace je rozdělena do bloků, které definují hlavičky v hranatých závorkách a proměnné se nastavují přiřazením hodnoty. Může-li proměnná obsahovat více hodnot, jsou odděleny čárkou. Ignorovány jsou řádky které mají jako první alafanumerický znak mřížku (#
).
Tam, kde konfigurace vyžaduje nastavení určitého vlastníka, skupiny či práv, lze uvést tato nastavení za příslušnou hodnotu proměnné do složených závorek. |
Od verze 2.7 má Puppet konfiguraci rozdělenou do bloků podle módů v jakých může pracovat
- main
- Obsahuje obecně platná nastavení
- agent
- Obsahuje nastavení pro mód, kdy zpracovává stažený manifest
- master
- Obsahuje nastavení pro mód kdy běží jako server
- user
- Obsahuje obsahuje nastavení specifická pro uživatele
Všechny ostatní bloky bere jako konfiguraci nového prostředí (environment). Z toho apriori plyne, že pro jméno prostředí nemůže být použit žádny z těchto názvů |
Do verze 2.6 neměl Puppet konfigurační bloky rozdělené podle módů, ale podle jmen démonů, které s nimi pracovaly. Při aktualizaci staršího prostředí je tedy třeba přesunout konfiguraci proměnných do příslušných bloků podle následujícího klíče:
|
Výchozí hodnoty proměnných lze také jednorázově přenastavit při spouštění démona. Je-li hodnota proměnné typu true, lze na příkazové řádce předat přímo jako parametr název proměnné, doplněný o dvě pomlčky (--). V případě že je typu false musí být před jméno proměnné doplněna ještě předpona no-
# Ekvivalent k listen = true:
$ puppet agent --listen
# Ekvivalent k listen = false:
$ puppet agent --no-listen
U proměnných, které mají obsahovat nějaký řetězec lze provést přiřazení dvěma způsoby
$ puppet agent --certname magpie.example.com
# Nebo s použitím rovnítka:
$ puppet agent --certname=magpie.example.com
Již výše byl uveden příklad, jak zjistit hodnotu proměnné
$ puppet master --configprint ssldir
/etc/puppet/ssl
$ puppet agent --configprint ssldir
/var/lib/puppet/ssl
# nebo:
$ puppet config print ssldir --section master
/etc/puppet/ssl
$ puppet config print ssldir --section agent
/var/lib/puppet/ssl
Puppet rovněž nabízí parametr, kterým lze vygenerovat konfigurační soubor, který zajistí, aby byl spuštěn v příslušném módu s takovými parametry, jako když je spuštěn s parametry na příkazové řádce.
$ puppet master --genconfig
Přehled nastavení všech proměnných příslušného módu lze zjistit použití klíčového slova all
$ puppet master --configprint all