Chef - Ruby Gems mit Rezepten

Rezepte sind die Schlüsselbausteine ​​des Kochbuchs, bei dem es sich im Grunde um Ruby-Code handelt. Es ist möglich, alle Ruby-Sprachfunktionen im Chef-Rezept zu verwenden. Die meiste Zeit ist die eingebaute Ruby-Funktionalität ausreichend, aber manchmal muss man möglicherweise zusätzliche Ruby-Edelsteine ​​verwenden. Zum Beispiel, wenn Sie über das Rezept selbst auf die MySQL-Datenbank zugreifen müssen.

Das Kochrezept hat die Fähigkeit, die erforderlichen Rubinsteine ​​zu erhalten, um sie innerhalb desselben Rezepts zu verwenden.

Verwenden von iptable Gem im angegebenen Rezept

Step 1 - Bearbeiten Sie das Standardrezept des Kochbuchs und installieren Sie den Edelstein, der im Rezept verwendet werden soll.

vipin@laptop:~/chef-repo $ subl 
cookbooks/my_cookbook/recipes/default.rb 
chef_gem 'ipaddress' 
require 'ipaddress' 
ip = IPAddress("192.168.0.1/24") 
Chef::Log.info("Netmask of #{ip}: #{ip.netmask}")

Step 2 - Laden Sie das geänderte Kochbuch auf den Chef-Server hoch.

vipin@laptop:~/chef-repo $ knife cookbook upload my_cookbook 
Uploading my_cookbook [0.1.0]

Step 3 - Ausführen des Chef-Clients, um die Ausgabe anzuzeigen.

user@server $ sudo chef-client 
...TRUNCATED OUTPUT... 
[2013-01-18T14:02:02+00:00] INFO: Netmask of 192.168.0.1: 
255.255.255.0 
...TRUNCATED OUTPUT...

Arbeitsmethode

Die Schritte zum Ausführen des Chefs bestehen aus der Kompilierungsphase, in der alle Ressourcen kompiliert werden, und einer Ausführungsphase, in der der Chef die Ressourcenanbieter ausführt, um den Knoten in den gewünschten Zustand zu bringen. Wenn Sie einen bestimmten Ruby-Edelstein im Kochbuch benötigen, müssen Sie den Edelstein während der Komplikationsphase installieren.

Die chef_gem-Ressource wird genau das Gleiche tun, und in Chef ist Omnibus die einzige Möglichkeit, zu arbeiten. Seine Hauptfunktion besteht darin, dem Küchenchef selbst Edelsteine ​​zur Verfügung zu stellen.