Domanda

Ho creato un libro di cucina dello chef, che ha molte dipendenze ad altri libri di cucina.Il mio problema principale ora è che le ricette da altri libri di cucina vengono eseguite nell'ordine casuale.Se specifico l'esecuzione di queste ricette nel file vagaburino come:

chef.add_recipe "gitlab::core_prereq"
chef.add_recipe "postfix"
chef.add_recipe "gitlab::users_prereq"
chef.add_recipe "rvm::vagrant"
chef.add_recipe "rvm::system"
chef.add_recipe "ohai"
chef.add_recipe "nginx"
chef.add_recipe "gitlab::python_tools_prereq"
chef.add_recipe "gitlab::gitolite_prereq"
chef.add_recipe "gitlab::gitlab_install"
.

Tutto funziona bene, ma vorrei avere questa specifica nella ricetta, in modo che un utente abbia solo bisogno di includere la ricetta predefinita e ottiene tutto il necessario installato nell'ordine giusto.

Come posso risolverlo?Dovrei usare un ruolo?Non capisco dai Documenti chef, se il ruolo può essere specificato all'interno di una ricetta.

È stato utile?

Soluzione

Immagino che non tutte le tue ricette possano essere installate sulla macchina pulita.Ma dovrebbero essere.Se una ricetta "A" ha alcuni prerequisitivi, quindi dovresti aggiungere che riceve richieste in ricetta "A" usando include_recipe.

Nel tuo caso immagino che Gitlab :: gitlab_install richiede gitlab :: gitolite_prereq e gitlab :: python_tools_prereq .Ciò significa che dovresti aggiungere al cookbooks/gitlab/recipes/gitlab_install.rb:

incude_recipe 'gitlab::gitolite_prereq'
incude_recipe 'gitlab::python_tools_prereq'
.

Puoi anche includere ricette da altri libri di cucina in questo modo.Per esasplire Ohai Richiede RVM :: System .Aggiungi a cookbooks/ohai/recipes/default.rb:

incude_recipe 'rvm::system'
.

e Aggiungi a cookbooks/ohai/metadata.rb:

depends 'rvm'
.

In questo modo non dovrai scrivere tutte le ricette in un ordine esatto, e non devi scrivere tutte le dipendenze, verranno installate automaticamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top