Chef - Gemme di rubino con ricette

Le ricette sono gli elementi costitutivi chiave del libro di cucina che è fondamentalmente codice Ruby. È possibile utilizzare tutte le funzionalità del linguaggio Ruby all'interno della ricetta dello Chef. La maggior parte delle volte la funzionalità incorporata in Ruby è sufficiente, ma a volte potrebbe essere necessario utilizzare gemme Ruby aggiuntive. Ad esempio, se è necessario accedere al database MySQL dalla ricetta stessa.

La ricetta dello chef ha la capacità di ottenere le gemme di rubino richieste per poterle utilizzare all'interno della stessa ricetta.

Usare iptable Gem nella ricetta data

Step 1 - Modifica la ricetta predefinita del ricettario e installa la gemma da utilizzare all'interno della ricetta.

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 - Carica il ricettario modificato sul server Chef.

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

Step 3 - Esecuzione del client Chef per vedere l'output.

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...

Metodo di lavoro

I passaggi di esecuzione di Chef consistono nella fase di compilazione, in cui compila tutte le risorse e in una fase di esecuzione in cui Chef esegue i provider di risorse per far convergere il nodo nello stato desiderato. Se si necessita di una particolare gemma Ruby all'interno del ricettario, è necessario installare la gemma durante la fase di complicazione.

La risorsa chef_gem farà esattamente lo stesso e in Chef Omnibus è l'unico modo per lavorare. La sua funzione principale è rendere disponibili le gemme allo Chef stesso.