Intro Sto imparando Chef per automatizzare la gestione del server al lavoro. Ho scaricato chefdk 3.0 da here e ora sto cercando di costruire il mio primo libro di cucina usando lo chef.Perché lo chef non può risolvere i miei libri di cucina?
Importante Sto usando questo in un ambiente Windows a scopo di test, mi aspetto che a fallire dal momento che Windows non ha iptables, ma non mi aspetto il fallimento dicendo che non riesce a trovare il libro di cucina . Ho provato a utilizzare Windows cookbook e funziona.
Il problema io sono in grado di creare il libro di cucina ed eseguirlo, ma non sono in grado di fare riferimento a dipendenze da supermercato.
ho provato due alternative:
Alternativa 1
ho usato il seguente comando per creare il libro di cucina
chef generate cookbook learn_chef_httpd
(da this tutorial)
ero in grado di completa il tutorial e ora vorrei testare il riferimento a un altro libro di cucina, quindi ho scelto simple_iptables
ho aggiunto questa linea
cookbook 'simple_iptables', '~> 0.7.0'
Con mia Berksfile, come descritto nel supermercato.
poi ho aggiunto queste righe al mio file default.rb:
include_recipe 'simple_iptables'
# Allow HTTP, HTTPS
simple_iptables_rule "http" do
rule [ "--proto tcp --dport 80",
"--proto tcp --dport 443" ]
jump "ACCEPT"
end
e corro il libro di cucina utilizza:
chef-client --local-mode --runlist 'recipe[learn_chef_httpd]'
Il problema è che lo Chef non trova il libro di cucina
Chef::Exceptions::CookbookNotFound
----------------------------------
Cookbook simple_iptables not found. If you're loading simple_iptables from anoth er cookbook, make sure you configure the dependency in your metadata
Ho provato ad aggiungerlo ai metadati:
depends 'simple_iptables', '~> 0.7.0'
Ma ho ancora un errore:
Error Resolving Cookbooks for Run List:
Missing Cookbooks:
No such cookbook: simple_iptables
Alternativa 2
sto ancora cercando di farlo funzionare così ho anche provato a fare "il modo in cui berkshelf", così ho creato un nuovo libro di cucina.
berks cookbook test
E ho aggiunto questa linea
cookbook 'simple_iptables', '~> 0.7.0'
Con mia Berksfile, come descritto nel supermercato.
poi ho aggiunto queste righe al mio file default.rb:
include_recipe 'simple_iptables'
# Allow HTTP, HTTPS
simple_iptables_rule "http" do
rule [ "--proto tcp --dport 80",
"--proto tcp --dport 443" ]
jump "ACCEPT"
end
Berks Eseguiti installare:
berks install
e corse:
chef-client --local-mode --runlist 'recipe[test]'
Lo stesso errore è tornato
Chef::Exceptions::CookbookNotFound
----------------------------------
Cookbook simple_iptables not found. If you're loading simple_iptables from anoth er cookbook, make sure you configure the dependency in your metadata
Ho provato ad aggiungere alla metadati:
depends 'simple_iptables', '~> 0.7.0'
Ma ho ancora un errore:
Error Resolving Cookbooks for Run List:
Missing Cookbooks:
No such cookbook: simple_iptables
ho guardato la cartella ~/berkshelf ei libri di cucina ci sono.
** Alternativa 3 **
ho iniziato una CentOS 6.5 istanza EC2 su Amazon, installato rubino 2.1.3 e Chef. ha creato un ~/chef-repo/cartella di libri di cucina
ho creato un libro di cucina con berkshelf, corse
bundle install
aggiunto il riferimento/codice come negli altri alterantives poi
berks install
e Ho corso nello stesso modo in cui l'ho fatto l'ultima volta.
Ho gli stessi problemi.
Cosa mi manca? Di cosa ho bisogno per farlo funzionare?
State aggiungendo queste righe '' a vostra berksfile o la vostra ricetta default.rb? –
Alla ricetta default.rb – JSBach
Potrei sbagliarmi, ma non hai menzionato l'installazione di 'berks' dopo aver modificato il file berks. Si consiglia inoltre di utilizzare il fornitore di berks per creare una directory che raccolga tutti i libri di cucina necessari e indicando il percorso repo chef-client in questa directory. Tutto sommato, i tuoi libri di cucina sono sul tuo disco, ma non da qualche parte a cui chef-zero guarda. – Tensibai