2014-05-16 22 views
9

Diciamo che voglio usare un libro di cucina della comunità (ad esempio http://community.opscode.com/cookbooks/gerrit). Quindi lo scaricherò usando 'download del sito cookbook coltello' e caricare sul mio server chef locale. Devo ripetere questo passaggio per ogni dipendenza diretta e transitoria.Risoluzione e download delle dipendenze da cookbook dello chef

Esiste un singolo comando o strumento per risolvere/scaricare tutte le dipendenze dirette e transitorie di un ricettario?

+1

Grazie per il vostro interesse nel mio libro di cucina Gerrit :-) ti consiglierei di utilizzare lo stato da [GitHub] (https: //github.com/TYPO3-cookbooks/gerrit). – StephenKing

risposta

4

Al momento le cose sono un po 'in fase di transizione. Berkshelf è probabilmente la strada da percorrere in futuro, ma se avete bisogno di qualcosa che funziona ora (o siete su una piattaforma non ancora supportata dal ChefDK), si dovrebbe essere in grado di fare qualcosa di simile:

knife cookbook site install gerrit 
knife cookbook upload gerrit --include-dependencies 

Personalmente, ho trovato la creazione di libri di cucina wrapper e la gestione delle dipendenze tramite berkshelf per essere la più comoda. Ma ho usato quanto sopra per fare alcuni test una tantum con nuovi libri di cucina.

8

Solo per espandere qui le risposte sull'utilizzo di Berkshelf incluso in ChefDk. Il puntatore all'utilizzo di Bershelf è ottimo, ma manca il come parte quindi spero che qualcuno possa trovare utile questa risposta.

Prendiamo ad esempio la wordpress libro di cucina che ha dipendenze: https://supermarket.chef.io/cookbooks/wordpress

Per caricare questo per il vostro chef server, cosa si può fare è creare un Berksfile che Berkshelf userà come una configurazione tale da ciò che i libri di cucina da recuperare e dove trovarli. Basta copiare l'one-liner dal supermercato berkshelf sezione

chef-dev]$ cat Berksfile 
source "https://supermarket.chef.io" 

cookbook 'wordpress', '~> 3.0.0' 

e poi fare un Berks installare

[chef-dev]$ berks install 
Resolving cookbook dependencies... 
Fetching cookbook index from https://supermarket.chef.io... 
Installing 7-zip (1.0.2) 
Installing apache2 (3.2.2) 
Installing apt (2.9.2) 
Installing bluepill (2.4.3) 
Installing build-essential (2.4.0) 
Installing chef-sugar (3.3.0) 
Installing chef_handler (1.4.0) 
Installing compat_resource (12.10.6) 
Installing database (5.1.2) 
Installing iis (4.1.10) 
Installing mariadb (0.3.1) 
Installing mysql (7.2.0) 
Installing mysql2_chef_gem (1.0.1) 
Installing nginx (2.7.6) 
Installing ohai (2.1.0) 
Installing openssl (4.4.0) 
Installing packagecloud (0.2.4) 
Installing php (1.9.0) 
Installing php-fpm (0.6.10) 
Installing postgresql (4.0.6) 
Installing rbac (1.0.3) 
Installing rsyslog (4.0.0) 
Installing runit (1.7.8) 
Installing selinux (0.9.0) 
Installing smf (2.2.8) 
Installing tar (0.7.0) 
Installing windows (1.44.1) 
Installing wordpress (3.0.0) 
Installing xml (2.0.0) 
Installing yum (3.11.0) 
Installing yum-epel (0.7.0) 
Installing yum-mysql-community (0.2.0) 

Una volta che i libri di cucina sono disponibili a livello locale, si possono quindi caricare il libro di cucina e le sue dipendenze utilizzando berks upload. Durante il caricamento, si occuperà anche di risolvere dipendenze simili al download.

[chef-dev]$ berks upload 

Inoltre FYI, i libri di cucina sarà il download e disponibile in

~/.berkshelf/cookbooks/ 
+1

Molto informativo, grazie! C'è anche un berks equivalente a 'chef-solo -c solo.rb -j solo.json' per distribuire l'infrastruttura su una macchina? – Ninjaxor

+0

ciao, ho appena provato questo, ma sto ricevendo errore come segue Risolvere dipendenze del libro di cucina ... Recupero 'wp_test' dalla sorgente a. Recupero dell'indice di un libro di cucina da https: //supermarket.chef.io ... I vincoli di dipendenza non potevano essere risolti nel tempo assegnato. Impossibile trovare una soluzione per le richieste: wordpress (~> 3.0.0), wp_test (0.1.0) –

Problemi correlati