Puppet (augeas)

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

Augeas

Augeas je konfigurační nástroj, který umí zpracovat nativní formát konfiguračních souborů v systému do editovatelné stromové struktury a její modifikovaný obsah ukládat zpět tam kam patří.

Pro lokální administraci na příkazovém řádku se používá nástroj augtool (u Debianu je součást balíčku augeas-tools), ale Puppet pracuje s augeasem přímo přes jeho API, takže přítomnost tohoto nástroje není nutná.

Práce s augtool

I když nástroj augtool není pro použití typu augeas nezbytný, hodí se k testování kontextu. Proto je dobré vědět jak se s ním pracuje.

Je-li spuštěn bez jakýchkoliv příkazů, nabídne interaktivní módu příkazovou řádku, na které lze dále pracovat. Jako vůbec první příkaz je vhodné spustit help, který vypíše stručný přehled základních příkazů.

Upozornění Následující příklady nepředstavují referenční příručku, takže zde rozhodně nebudou prezentovány všechny možnosti augeasu.

Stromová struktura augeasu

Pro výpis stromové struktury augeasu se používá příkaz ls, což připomíná výpis stromové struktury unixových souborových systémů. Je to i díky tomu, že se do ní po natažení integrovují cesty k souborům.

Pokud spustíme augtool s parametrem -A (alt. --noautoload), který zakáže automatické natažení parsovacích filtrů i souborů, vypadá tato struktura takto:

Poznámka
root@stroj:~# augtool -A
augtool> ls /
augeas/ = (none)
files = (none)

Příkaz ls provádí pouze výpis potomků předané cesty. Celý podstrom, včetně hodnot parametrů, lze vypsat příkazem print.

Poznámka
augtool> print /augeas
...
Poznámka Při zadávání cesty lze s výhodou používat automatické doplňování s pomocí tabulátoru. Pěkné je, že nástroj augtool má k dispozici také vlastní historii.

lens

Pod jménem lens se u augeasu rozumí parsery konfiguračních souborů.

Jsou to skripty, u Debianu uložené v adresáři /usr/share/augeas/lenses/dist/, s příponou .aug, které většinou mají předdefinovány parametry pro identifikaci konfiguračních souborů, které se při svém automatickém natažení mají rozparsovat.

Toto načtení parsovacích filtrů (lenses) a parsování konfiguračních souborů, které rozpoznají, se automaticky provede, je-li augtool spuštěn bez jakýchkoliv omezujících parametrů.

Poznámka Ne každý filtr se však načítá automaticky. Automaticky se totiž načtou pouze ty, které mají ve skriptu nastaven autoload. Ve výpisu příslušného filtru se liší od těch manuálně natažených tím, že mají před názvem v parametru lens znak @

Informace o zavedených filtrech

Informace o zavedených filtrech jsou součástí větve /augeas/load. Viz ukázkový výpis parsovacího filtru pro zpracování konfigurace zdrojů pro APT

Poznámka
augtool> ls /augeas/load/Aptsources/
lens = @Aptsources
incl[1] = /etc/apt/sources.list.d/*
incl[2] = /etc/apt/sources.list
excl[1] = /*.augnew
excl[2] = /*.augsave
excl[3] = /*.dpkg-dist
excl[4] = /*.dpkg-bak
excl[5] = /*.dpkg-new
excl[6] = /*.dpkg-old
excl[7] = /*.rpmsave
excl[8] = /*.rpmnew
excl[9] = /*~
incl

Z názvu, který je obsahem parametru lens je zřejmé, že jde o automaticky načtený filtr, který zpracovává obsahy souborů identifikovaných jako parametry incl, tj. soubory v adresáři /etc/apt/sources.list.d a obsah souboru /etc/apt/sources.list.

excl

Prostřednictvím nastavení parametrů excl je naopak určeno, které soubory má parser ignorovat.