Automatizáljunk Chef-fel

Amikor IT automatizálásról beszélünk bizonyára sokunknak azonnal a Chef jut eszébe mint configuration management tool. Használatával egységes utasításhalmaz alkalmazható az infrastruktúránkra és a rajtuk futó szolgáltatásokra, legyen az fizikai, virtuális vagy éppen cloud gép. A Chef szerver része Ruby és Erlang nyelven íródott, a kliens és a config definíciók – ezeket recipes (recept)-nek nevezzük – Ruby nyelven.

Kezdjünk a fent említett recipes-el. Ezek azok a fájlok, melyek utasításai tartalmazzák, hogy a Chef kliensnek milyen beállításokat kell magán végrehajtania. Tetszőleges számú receptet készíthetünk elő, melyeket úgynevezett “cookbook”-ok segítségével foghatjuk össze. Ebből is látszik, hogy egy kliens/szerver alapú kommunikációról beszélünk. Ezenfelül a Chef támogatja a standalone módot, amikor szerver elérés nélkül az utasításokat közvetlenül a gépen futtatjuk le a chef-solo eszközzel.

A chef szerver telepítésére cikkünk nem tér ki, hiszen rendkívül kidolgozott telepítési leírás érhető el az oldalukon: http://docs.chef.io/install_server.html

Nézzünk egy egyszerű példát egy fájl elkészítésére, majd határozzuk meg ennek tartalmát és jogosultságát.

Legyen a fájl neve teszt.txt és a tartalma:

Majd hivatkozzunk erre a fájlra a cookbook_file resource alatt és állítsuk be, hogy a /tmp/ könyvtár alá kerüljön:

Futtassuk le a chef-client-et a kliensen:

Az eredményben is látszik, hogy a fájl létrejött, és a tartalma is megjelenik. Valamint jól látszik hogy a jogosultságokat is beállította a fájlon az előre kért módon.

Az eredményt így ellenőrizhetjük le:

Lássuk mi történik akkor, ha kézzel hozzányúlunk a fájl tartalmához:

Futtassuk le újfent a chef kliens részét:

Az eredményből látszik, hogy a kézzel hozzáadott string-et kivette, és visszaállította az eredeti állapotot.

Ellenőrizzük még egyszer:

Rövid cikkünk alapján is látszik, hogy a segítségével bonyolult folyamatok automatizálását is magabiztosan elvégezhetjük. Remélem kedvet kaptatok a cikk kapcsán, hogy kipróbáljátok Ti is a Chef-et.

Folytatása következik.