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

Až by se mohlo zdát, že Puppet je primárně určen pro správu linuxového systému, není tomu tak. Interně je naprogramován v Ruby a tak jej lze provozovat i na jiných platformách, jako je MS Windows či MAC OS X. A skrz linuxový server lze spravovat nejenom linuxové nody.


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. Na rozdíl od manifestů, které zpracovává master na straně serveru to jsou skripty v Ruby, které si klient stáhne a spustí na straně nodu. 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