2011-10-17 14 views
13

Sono nuovo di Ruby e Chef. Ho sviluppato libri di cucina, li ho commissionati, li ho caricati su Chef Server e li ho distribuiti a un cliente Chef con un cambio di ruolo seguito da un "chef-cliente" eseguito sul client. Questo processo è lento.Come posso sviluppare ed eseguire il debug di libri di cucina e ricette Chef in un IDE (come Eclipse)?

Come posso, utilizzando un IDE (Eclipse nel mio caso), sviluppare libri di cucina ed essere in grado di eseguire il debug (impostare punti di interruzione, controllare variabili ecc.) Ed eseguirli senza caricarli su Chef Server e quindi richiamarli con un cuoco-cliente corre?

  • Sto usando Eclipse 3.7 Indigo con il "Dynamic Languages ​​Toolkit - Ruby per lo sviluppo Strumenti 3.0.0.v20110424-7Z - E_EkMYXO4k101442" plug
  • sto sviluppando libri di cucina Opscode Chef con la 10.x Chef codeline
  • sto lavorando su un sistema Ubuntu 10.10 in via di sviluppo libri di cucina per essere eseguito su RHEL/CentOS 5 server
  • Noi usiamo il nostro Chef Server (open source)

risposta

0

tendo a usare chef-solo su un bersaglio macchina virtuale. Vado a controllare il mio libri di cucina pronti contro termine e iterare localmente con un solo.rb su modelli:

path File.expand_path(File.dirname(__FILE__)) 
cookbook_path "#{File.expand_path(File.dirname(__FILE__))}/cookbooks" 
log_level ENV['CHEF_LOG_LEVEL'] && ENV['CHEF_LOG_LEVEL'].downcase.to_sym || :info 
log_location ENV['CHEF_LOG_LOCATION'] || STDOUT 
verbose_logging ENV['CHEF_VERBOSE_LOGGING'] 

Impostazione log_level per eseguire il debug aiuta un po 'quando si pedala con il corridore.

+0

C'è un modo per impostare punti di interruzione e vedere le variabili dopo aver messo in pausa l'esecuzione in questo modo? Forse un modo per abilitare il debug di debug al di fuori di un IDE ma all'interno di una corsa da solo di chef? –

+1

Per lo sviluppo esplorativo e iniziale, potresti voler dare un'occhiata a [shef] (http://wiki.opscode.com/display/chef/Shef), Oppode REPL. È solo una sessione irb strumentata in modo da poter fare tutto ciò che vuoi con il runtime lì. – jodell

+1

lo chef-solo è buono. manca solo di funzionalità come la ricerca di chef che è ampiamente utilizzata nella configurazione multi-nodo. Direi che [Berkshelf] (https://github.com/RiotGames/berkshelf) e [vagrant] (http://www.vagrantup.com/) sono buoni per testare il comportamento dei libri di cucina. Se vuoi solo testare l'interazione delle tue ricette e attributi, [chefspec] (https://github.com/acrmp/chefspec) sarebbe buono e può fornire un test unitario come un rapporto di prova. – shawnzhu

3

È possibile utilizzare Eclipse come un semplice editor per Chef libri di cucina. Non avrai alcun supporto IDE e debug ma alcune persone come me potrebbero preferirlo comunque.

Se si utilizza un editor di Ruby su Eclipse è possibile ottenere l'evidenziazione della sintassi per i file .rb Ruby ma non l'ho ancora provato.

Si può fare qualsiasi cartella di un progetto Eclipse (ad esempio lo chef-repo o un CookCook specifico) con l'aggiunta di un file .project con al suo interno:

 
<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>PROJECT_NAME</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
    </buildSpec> 
    <natures> 
    </natures> 
</projectDescription> 

Poi in Eclipse scegliere File -> Import -> Generale -> Progetti esistenti nello spazio di lavoro e scegliere la cartella in cui è stato aggiunto il file .project.

0

fatto qualche lavoro su Keplero e ha scoperto che:

  • Importazione Chef come progetto rubino tipicamente fallisce perché l'importatore non sembra in grado di riconoscere le strutture specifiche del cuoco come "libri di cucina", ecc come luoghi per l'origine .Tutto quello che vedete è la libreria ruby ​​interprete
  • Forzare un'importazione rubino per visualizzare le cartelle come fonte di mano (dichiarare cartella di origine) non riesce anche perché il codice nella cartella e tutte le sottocartelle non sono visibili
  • Importazione come un progetto generale funziona in termini di visualizzazione di tutte le strutture basate su Chef e del loro codice, ma il codice non è riconosciuto come codice ruby ​​e non vi sono funzionalità correlate alla sintassi
  • Importazione come progetto generale, quindi in seguito aggiunta di ruby ​​buildspec e natura rubino funziona. Tutti i file sono visibili e la modifica con l'editor di ruby ​​è disponibile con l'evidenziazione della sintassi.

In breve, aggiungere questo:

<buildSpec> 
    <buildCommand> 
     <name>org.eclipse.dltk.core.scriptbuilder</name> 
     <arguments></arguments> 
    </buildCommand> 
</buildSpec> 
<natures> 
    <nature>org.eclipse.dltk.ruby.core.nature</nature> 
</natures> 

Dubito che ci sia alcun debugging, ecc - non è il mio obiettivo, come ho eseguito su Linux, ma almeno abbiamo un editor decente e l'integrazione git!

Per motivi di sicurezza, ha anche copiato il file .buildpath nella posizione del progetto ... non è sicuro che sia necessario. I contenuti generici sono:

<?xml version="1.0" encoding="UTF-8"?> 
<buildpath> 
    <buildpathentry kind="src" path=""/> 
    <buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/> 
</buildpath> 
0

Per strumenti di sviluppo Eclipse Ruby, non v'è alcun supporto per libri di cucina del cuoco unico a partire dal 2015 13 maggio, tuttavia non v'è alternativa proprietaria se si vuole.

RubyMine 7 IDEsupports Chef con navigazione automatica completa e definizione per risorse Chef standard e relativi attributi. Ruby Mine è basato su Intellij IDEA.

Invece di RubyMine, questa caratteristica funziona con IntelliJ IDEA se si installa il Chef integration plugin in cima ruby plugin

If you are student or teachers, o è for education or training, o for open source projects, è possibile applicare per licenza gratuita.

0

Può essere che è già noto ma al momento possiamo utilizzare ATOM con i pacchetti aggiuntivi di lingua-cuoco, linter-foodcritic, linter-ruby

https://atom.io/

1

La risposta non è così semplice, come di oggi Opscode non ha un "plugin ufficiale".

Ho trascorso le ultime serate creando un plug-in per chef per Eclipse. In questo momento è molto semplice, se altre persone mostrano interesse a lavorarci, potrei aggiungere di più ... Per ora fa la maggior parte di ciò di cui ho bisogno (creare nuovi libri di cucina, aggiungere ricette, attributi, lwrps, ecc.), soprattutto mi sto mettendo un wrapper eclissi intorno gli strumenti Chef (cuoco, Berks, cucina, foodcritic, ecc)

https://github.com/rleibman/chef-eclipse-plugin

non ho alcuna intenzione di rimuovere questo plugin, a meno che non Opscode esce con la propria.

Ho iniziato a creare questo plugin con grande aiuto da questo tutorial: https://cvalcarcel.wordpress.com/2009/07/08/writing-an-eclipse-plug-in-part-1-what-im-going-to-do/.

Ora, dopo aver detto tutto questo ... se sei a tuo agio con la riga di comando, puoi fare la maggior parte di ciò che ti serve con cose che sono già lì: creare un libro di cucina con berks o chef, e.g:

cuoco generare ricettario my_cookbook

e quindi creare un nuovo progetto di rubino in Eclipse aperta al libro di cucina che avete appena creato. Una volta creato, puoi modificare i file ruby, ecc. Puoi anche utilizzare tutte le altre funzionalità dello chef (ad esempio lo chef genera ricette) per aiutarti a iniziare.

+2

Ti consiglio di condividerlo. In caso contrario, questa risposta non aiuta il problema. – zuazo

+0

Scusa, ho dimenticato, l'ho aggiunto da allora. – rleibman

+0

Si prega di aggiungere ulteriori dettagli al tuo post. Capisco che questo è il tuo repository, ma se migri o il link cambia, questa risposta non aiuterà nessuno. – dckuehn

Problemi correlati