2013-02-20 14 views
5

Abbiamo un ambiente di test che consiste in un server, un client e un altro client come workstation.Chef server, installa un libro di cucina che non proviene dal sito di ricettario

sono consapevole del comando

# knife cookbook site install apache2 

ma questo comando genera un errore perché non riesco nemmeno a scaricare l'utilizzo del sito libro di cucina. Quando scarico,

# knife cookbook site download apache2 

questo viene fuori,

ERROR: Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, retry 1/5 
ERROR: Network Error: Connection refused - Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, giving up 
Check your knife configuration and network settings 

Se avete qualcosa per risolvere questo problema, anche condividere, ma il mio problema principale è quello di conoscere un modo per installare un libro di cucina manualmente? Non dal sito del libro di cucina? Ho provato a scaricare dal sito utilizzando il pulsante 'Download' lì e poi copiare il tar.gz alla postazione di lavoro, caricandolo sul server di cuoco, aggiungendo il libro di cucina per ricetta elenco di esecuzione del nodo e quindi l'esecuzione

# chef-client 

nella workstation. È allo stesso modo dell'installazione? Se no, c'è un modo per farlo?

Grazie.

+0

Avete presso il vostro chef repo la cartella .chef e ha le vostre credenziali (USER.pem e VALIDATOR.pem)? – Edu

+0

Sì. Ho già risolto il problema. Sembra che il mio problema sia il proxy http. In knife.rb, ho aggiunto il http_proxy. Ora, posso eseguire con successo l'elenco di siti # cookbook coltello ma installare e scaricare generato un nuovo errore - problemi di autorizzazione si dice. Qualche idea? Ho aggiunto l'errore sopra. – Ella

risposta

7

I normali passaggi per il caricamento di un libro di cucina da dentro il vostro chef-repo è:

  1. Scaricare ed estrarre il libro di cucina al vostro chef-repo/cookbooks directory
  2. caricare il libro di cucina per il vostro chef-server utilizzando knife cookbook upload -a o knife cookbook upload [COOKBOOKS...]
  3. gestiscono lo chef-client sul nodo client utilizzando chef-client

Ciò sembra corrispondere cosa hai fatto.

"Installazione" un libro di cucina con knife cookbook site install COOKBOOK è essenzialmente lo stesso di scaricarlo tramite knife cookbook site download COOKBOOK tranne che il comando di download salva come .tar.gz mentre il comando estrae installare e stabilisce un modulo git in modo da poter continuare a aggiornato. (Vedere Managing Cookbooks With Knife - Cookbook Site.)

È possibile utilizzare strumenti come Librarian o Berkshelf per gestire e scaricare libri di cucina da qualsiasi repo git, il sito della comunità Opscode, o un percorso locale. Entrambe queste gemme funzionano in modo molto simile a Bundler; generano uno Cheffile.lock o Berksfile.lock che consente di bloccare i libri di cucina a una versione o di eseguire il commit di SHA.

MODIFICA: Non sono proprio sicuro del perché knife cookbook site install/download non funzionerà, tuttavia; non richiedono alcun tipo di autenticazione. Da knife cookbook sitedocs: "Per comandi che leggono semplicemente dal sito del libro di cucina (come download, ricerca, installazione ed elenco) non è necessario un account su community.opscode.com. Per i comandi che scrivono sul sito è necessario un account sul sito della community. "

Vale la pena notare che knife cookbook site download differisce da knife cookbook download. Il primo si collega a community.opscode.com, mentre il secondo si collega al tuo server chef. Con chi hai problemi?

+0

Grazie per questo. Capisco ora che l'esecuzione di chef-cliente con un libro di cucina non proveniente dal sito è la stessa che l'installazione. alla fine sono riuscito a collegarmi al sito del cookbook aggiungendo http_proxy a knife.rb. Sono in grado di eseguire # elenco di siti cookbook coltello ma non installare e scaricare. qualche idea? Grazie ancora! – Ella

+0

Nessun problema! Puoi provare ad aprire un biglietto su ticket.opscode.com, sono molto bravi nell'aiutare. Sto esaurendo lo spazio qui con il blocco completo di testo che voglio aggiungere, quindi lo incollerò nella mia risposta sopra come una modifica. –

+0

Ciao! Sto avendo problemi con il download del sito cookbook coltello da community.opscode.com. Penso che il problema non sia l'autenticazione del sito ma l'autorizzazione al server. Ho aggiunto il log degli errori qui sotto per i riferimenti. Grazie. – Ella

0

Running chef-client è uguale all'installazione del ricettario dal sito.

Inoltre, ho trovato un modo per correggere questo errore:

ERROR: Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, retry 1/5 
ERROR: Network Error: Connection refused - Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, giving up 
Check your knife configuration and network settings 

ho aggiunto http_proxy in /root/.chef/knife.rb

Ora, posso eseguire con successo

# knife cookbook site list 

Tuttavia, il sito di cookbook installa e scarica generato un nuovo errore.

Downloading getting-started from the cookbooks site at version 0.4.0 to /home/chef/getting-started-0.4.0.tar.gz 
ERROR: You authenticated successfully to http://10.43.109.236:4000 as my-chefuser but you are not authorized for this action 
Response: #<Net::ReadAdapter:0x2b2afa986ac0> 

Penso che il problema ora è il permesso del server di Chef, non il sito libro di cucina perché ho già accesso ad esso elencando i libri di cucina.

0

ho avuto il problema troppo e utilizzando questo dal sistema di ticket Chef fisso sia down-e caricare per me: Aggiungi queste righe alla fine del file knife.rb:

http_proxy    "http://proxyserver:8080" 
https_proxy    "http://proxyserver:8080" 

require 'rest-client' 
RestClient.proxy = "http://proxyserver:8080" 

dove ovviamente è necessario per sostituire proxyserver:8080 deve essere sostituito con le vostre specifiche.

+0

Il mio proxy richiede l'autenticazione. Come aggiungo le credenziali in RestClient.proxy? Ho già provato http: // username: password @ proxyip: port / –

Problemi correlati