Nastavení serveru pomocí Ruby

Pro svůj nový projekt jsem potřeboval instalační skript na server, respektive na počáteční nastavení serveru. Ten se spouští pouze jednou po instalaci operačního systému, a další správa systému probíhá přes webové rozhraní.

Osvědčená řešení, jako jsou programy Puppet nebo Chef, jsem zavrhl po nějakém čase, kdy jsem si s nimi hrál. Tedy Chefa jsem si původně nechal rozmluvit sítí (hledal jsem: Puppet vs Chef) a později stejně udělal demo, které mě utvrdilo v původním rozhodnutí. Puppet je mnohem příjemnější než Chef, ale až potom, co si člověk zvykne na deklarativní styl jeho DSL. Puppet DSL a jeho špatně zdokumentovaná Ruby verze se ukázaly jako nevhodné pro jednorázovou operaci a nepřišel jsem na to, jak následně měnit nastavení v Ruby aplikaci.

Jeden nástroj, který splňuje všechny mé požadavky, existuje. Ruby gem AutomateIt je open source nástroj pro automatizaci a správu serverů, aplikací a jejich závislostí. Vývoj se u něj sice trochu zastavil, ale to co umí, dělá dobře. A umí toho docela dost.

Namodelován je tak, že se skládá z několika Managerů, interpreteru a třídy pro zapouzdření projektů, které se skládají z receptů, tagů, polí a přídavků. Toto jsou existující manageři: