Aggiornamento: chef-solista non è più uno strumento "separato" dallo chef-cliente. Dal documentation:
chef-solo is a command that executes chef-client in a way that does not require the Chef server in order to converge cookbooks. chef-solo uses chef-client’s Chef local mode, and does not support the following functionality present in chef-client/server configurations
Questa modifica è stata implementata in Chef version 12.11, che soddisfa il community RFC. Questo è stato rilasciato l'8 giugno 2016. Il vecchio comportamento, che è descritto di seguito (anche se da 4 anni fa in questo momento), è disponibile con l'argomento --legacy-mode
su chef-solo
.
Per la più aggiornate e informazioni aggiornate in merito a Chef Solo, si prega di leggere the official documentation
La mia risposta originale è qui sotto:
Chef (solista o client) non "RUN" tutti i libri di cucina .
It carichi tutti i file del libro di cucina di Ruby nelle seguenti directory, in questo ordine:...
- librerie/* rb
- fornitori/* rb
- risorse/* RB
- attributi/*. rb
- definizioni/*. rb
Quindi carica tutte le ricette presenti nell'elenco di esecuzione espansa del nodo.Con chef-solo
, questo viene da un file JSON fornito con -j
o può essere fatto nei file attributi, tuttavia quest'ultimo è deprecato e non consigliato.
Vengono caricate anche le ricette incluse da quelle nell'elenco di esecuzione espanso tramite include_recipe
. Lo chef carica le ricette valutandole come codice Ruby. Quando incontra il codice ruby che riconosce essere una risorsa, o una definizione, aggiunge la risorsa alla Raccolta risorse, che è un hash indicizzato ordinato numericamente di tutte le risorse. Le definizioni sono speciali, in quanto Chef aggiunge le risorse che contengono, non la definizione stessa, alla Raccolta risorse. Le risorse delle ricette incluse tramite include_recipe
vengono inserite in posizione, quindi Chef continua con la ricetta inclusa.
Una volta che Chef ha elaborato tutte le ricette per tutte le loro risorse, percorre la raccolta delle risorse eseguendo l'azione specificata su ciascuna nell'ordine in cui è stata aggiunta alla raccolta.
Consiglio vivamente di leggere la documentazione su questo processo. Si applica a Chef Solo; viene saltata solo la parte in cui i libri di cucina vengono scaricati dal server.
per garantire che solo le ricette che si desidera testare sono testati, li includono nella lista di esecuzione del nodo tramite un file JSON. Ecco come si presenta:
{ "run_list": ["recipe[mything]", "recipe[anotherthing]"] }
lista La corsa è solo una matrice, e gli elementi può essere recipe[cookbookname]
o role[somerole]
. Puoi leggere ulteriori informazioni su come utilizzare i ruoli con Chef Solo nella documentazione di Chef Solo.
Se si dispone di sistema di cambiamenti in atto quando Chef sta caricando i componenti Cookbook (i file di rubino in ogni libro di cucina), quindi "Stai facendo male" (tm) e dovrebbe refactoring quelle cose da fare in una risorsa chiamata da una ricetta.
tutti i link sono rotti – freedev