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:
Hello World!
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:
cookbook_file '/tmp/teszt.txt' do source 'teszt.txt' owner 'root' group 'root' mode '0644' end
Futtassuk le a chef-client-et a kliensen:
root@chef01-demo-client:~# chef-client Starting Chef Client, version 12.3.0 resolving cookbooks for run list: ["shiwaforce::hello_world"] Synchronizing Cookbooks: - shiwaforce Compiling Cookbooks... Converging 1 resources Recipe: shiwaforce::hello_world * cookbook_file[/tmp/teszt.txt] action create - create new file /tmp/teszt.txt - update content in file /tmp/teszt.txt from none to 7f83b1 --- /tmp/teszt.txt 2015-07-10 15:32:28.765523308 +0200 +++ /tmp/.teszt.txt20150710-12162-8u7b8e 2015-07-10 15:32:28.765523308 +0200 @@ -1 +1,2 @@ +Hello World! - change mode from '' to '0644' - change owner from '' to 'root' - change group from '' to 'root' Running handlers: Running handlers complete Chef Client finished, 1/1 resources updated in 5.871312342 seconds
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:
root@chef01-demo-client:~# cat /tmp/teszt.txt Hello World!
Lássuk mi történik akkor, ha kézzel hozzányúlunk a fájl tartalmához:
root@chef01-demo-client:~# echo "Kovetkezo sor" >> /tmp/teszt.txt && cat /tmp/teszt.txt Hello World! Kovetkezo sor
Futtassuk le újfent a chef kliens részét:
root@chef01-demo-client:~# chef-client Starting Chef Client, version 12.3.0 resolving cookbooks for run list: ["shiwaforce::hello_world"] Synchronizing Cookbooks: - shiwaforce Compiling Cookbooks... Converging 1 resources Recipe: shiwaforce::hello_world * cookbook_file[/tmp/teszt.txt] action create - update content in file /tmp/teszt.txt from 331dd9 to 03ba20 --- /tmp/teszt.txt 2015-07-10 15:51:46.098052723 +0200 +++ /tmp/.teszt.txt20150710-12810-1n6kie4 2015-07-10 15:52:06.580415541 +0200 @@ -1,3 +1,2 @@ Hello World! -Kovetkezo sor Running handlers: Running handlers complete Chef Client finished, 1/1 resources updated in 6.332635026 seconds
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:
root@chef01-demo-client:~# cat /tmp/teszt.txt Hello World!
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.