2013-06-30 15 views
11

sto lottando con le ricette dello chef per una scatola vagabonda. Sto usando lo chef-solo.È possibile eseguire il debug delle ricette dello chef dalla scatola vagabonda?

Non sono così a mio agio con Ruby (non l'ho mai usato prima), quindi il processo per scrivere le mie ricette è molto lungo se devo fare ogni volta vagrant provision.

C'è un modo per eseguire il debug di una ricetta specifica? Anche dalla shell della macchina virtuale.

Ho visto che esiste chef-shell (http://docs.opscode.com/chef_shell.html) e posso avviarlo (funziona) quando sono dentro la macchina virtuale, ma non riesco a capire come caricare le mie ricette e testarle.

risposta

4

È possibile utilizzare lo chef-solo direttamente dalla shell all'interno della VM, ma ciò richiede una struttura di file diversa da quella che si ha già per vagabondo.

E 'sembra un po' come quello che viene fatto here:

  • devi vostra directory di libri di cucina
  • è necessario un file .json che contiene tutti i dati che risiedono in chef.json nel vostro Vagrantfile
  • E voi bisogno di un wrapper/avvio di script rubino come quello del post di cui sopra.

In generale, provare a cercare tutorial che spieghino lo chef-solo senza Vagrant.

+0

funziona. Grazie! – apelliciari

8

Oltre all'ingresso sopra, che è execllent ;-)

Runing chef-solo in modalità debug (uscita di abilitazione di debug) sarà sicuramente aiutare.

Per esempio

chef-solo -c solo.rb -j node.json -l debug

+0

grazie per l'aggiunta – apelliciari

+0

controlla la cartella/tmp/ci dovrebbe essere la configurazione vagabonda compilata solo.rb json che puoi usare – ahmy

5

Se si esegue lo chef-solo all'interno Vagrant argomenti aggiuntivi personalizzati (per la registrazione/debug) può essere iniettato dal Vagrantfile in questo modo:

Vagrant.configure("2") do |config| 
    # ... 
    config.vm.provision :chef_solo do |chef| 
     chef.arguments = '-l debug' 
     # ... 
    end 
end 
+0

Sembra che 'chef.arguments' non sia documentato nei documenti v1 e v2 ... –

29

La corretta il modo per abilitare l'output di debug nell'attuale vagabondo chef Provisioner è con chef.log_level, non con chef-solo manualmente o con chef.arguments:

Vagrant.configure("2") do |config| 
    # ... 
    config.vm.provision :chef_solo do |chef| 
    chef.log_level = :debug 
    # ... 
    end 
end