Puppet

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

Puppet je systém typu klient/server pro automatickou údržbu operačního systému. Přičemž stroj, na kterém běží server (master), může být zároveň spravován i jako klient (agent) - stejně jako jiné stroje[1].

Puppet pro popis stavu operačního systému používá specifický programovací jazyk. Ten je z hlediska syntaxe velmi podobný jiným jazykům s podporou objektového programování(python, php5, java...)

Výsledkem zpracování je tzv. manifest - XML soubor, který popisuje jak má systém klientského nodu vypadat. Klientská aplikace která si jej stáhne pak podle něj realizuje potřebné operace. Řeší však pouze to, co je popsáno v manifestu. Aplikace, které nejsou udržovány přes Puppetu, neřeší, pokud jejich konfigurace nějakým způsobem nezasahuje do jím udržované konfigurace.

Upozornění Puppet není systém, který by sám od sebe automaticky zajišťoval kompletní výchozí instalaci, neboť vyžaduje aby na klientské stanici byl přítomen agent.

Nicméně umožňuje výrazným způsobem takovou instalaci usnadnit. Jak instalaci stroj krok za krokem s pomocí Puppetu se můžete dozvědět z manuálu Jak vytvořit bezdiskový virtuální stroj s operačním systémem GNU/Linux

Moduly

Manifest, popsaný v jednom souboru by byl záhy velice nepřehledný, proto se využívý samostatných modulů. Tyto moduly mohou obsahovat jak věci obecné - společné pro více strojů, tak individualizované funkce, které vygenerují konfiguraci specifickou pro konkrétní nod.

nod
V rámci systému Puppet se rozumí pod pojmem nod stroj na kterém běží klientská aplikace
modul
Modul je adresář, který obsahuje dílčí soubor manifestů a souborů
manifest
Adresář s názvem manifests, který obsahuje sadu souborů s příponou .pp s funkcemi, které zajistí že systém na klientském nodu bude odpovídajícím způsobem nainstalován a nakonfigurován.

Šablony

Pro vytváření individualizovaných konfiguračních souborů se používají šablony. Puppet je interně naprogramován v Ruby a šablony jsou v podstatě skripty interpretované tímto jazykem. Tzn. že v nich lze využívat všech možností objektového programování tohoto programovacího jazyka.

Poznámka Pro archivaci změn při úpravách manifestů na serveru je vhodné použít verzovací systém. Obecně je doporučován git
  1. Více o systému Puppet a jeho využití viz Brixí,M.: Automatizace procesů firmy v oblasti správy a údržby serverů (Diplomová práce) Plzeň: ZČU FAV, 2010