2011-12-03 23 views
10

Estoy usando chef para implementar una aplicación de carriles/nodo. Todo se implementa bien cuando implemento desde un repositorio público de github. Sin embargo, me gustaría implementar desde un repositorio privado de Github y estoy teniendo problemas para hacerlo. Aquí es lo que estoy haciendo actualmenteImplementación de un repositorio privado en Chef: ¿Qué estoy haciendo mal con mi clave de implementación?

cd ~/.ssh      # change directory to my .ssh directory 
ssh-keygen -f'deploy_key' -N '' # create a deploy_key key pair without a passphrase 
cat deploy_key.pub | pbcopy  # copy the public key into my clipboard 

-go to https://github.com/HairyMezican/PrivateRepoName/admin/keys 
-click on 'Add another deploy key' 
-type 'deploy_key' into 'Title' field 
- ⌘V (paste command) into 'Key' field 
-click 'Add Key' 

tr "\n" "#" < deploy_key | sed 's/#/\\n/g' | pbcopy  #copy the private key into my clipboard, except with all of the newlines replaced with a slash-n 
cd ~/chef-repo           #change over the the chef repo directory 

mate data_bags/apps/my_app.json       #edit the appropriate data bag in TextMate 
--set the following couple of lines before saving 
-"repository": "https://[email protected]/HairyMezican/PrivateRepoName.git", 
-"deploy_key": "⌘V (paste command into here)", 

knife data bag from file apps data_bags/apps/my_app.json      #upload the databag to my chef server 
ssh [email protected] "mkdir ~/.ssh"           #create a ssh directory on my remote server 
scp ~/.ssh/id_dsa [email protected]:.ssh/          #copy my private key over to the ssh directory on the remote server 
cat ~/.ssh/id_dsa.pub | ssh [email protected] 'cat - >> ~/.ssh/authorized_keys' #add my public key into the authorized keys list on the remote server 
knife bootstrap 12.34.56.789 -dubuntu10.04-gems -rrole[myapp]     #tell my chef server to bootstrap the remote server 

todo va bien hasta que el proceso de arranque intenta instalar desde el repositorio privado. y muestra esto:

12.34.56.789 [Sat, 03 Dec 2011 01:41:42 +0000] INFO: Processing deploy_revision[myapp] action deploy (application::rails line 155) 
12.34.56.789 Password: 

y luego prácticamente se congela (técnicamente, todavía puedo escribir, pero nada de tipo I afecta a la secuencia de comandos), hasta 10 minutos más tarde

12.34.56.789 [Sat, 03 Dec 2011 01:51:51 +0000] ERROR: deploy_revision[myapp] (application::rails line 155) has had an error 
12.34.56.789 [Sat, 03 Dec 2011 01:51:51 +0000] ERROR: deploy_revision[myapp] (/var/chef/cache/cookbooks/application/recipes/rails.rb:155:in `from_file') had an error: 
12.34.56.789 deploy_revision[myapp] (application::rails line 155) had an error: command timed out: 

continuación, enumera un espacio en blanco salida en stdout y stderr, y una traza de la pila tratando de ejecutar el comando

¿Qué estoy haciendo mal y cómo puedo implementar desde un repositorio privado?

+0

que se parece a su clave ssh está solicitando para la paráfrasis para que pueda conectarse a GitHub. ¿Puedes intentar regenerar la clave sin una paráfrasis y luego usar? ** Nota: no usar una paráfrasis en la clave ssh es un riesgo de seguridad ** –

Respuesta

7

Si se trata de una cesión temporal privada que debe utilizar la vía SSH a su repositorio git que comienza con [email protected] también.

[email protected]:HairyMezican/PrivateRepoName.git
0

Necesita crear una clave de implementación en github que le permita extraer de su repositorio privado sin ingresar una frase de contraseña.

Ver documentación en: http://help.github.com/deploy-keys/

+0

No se pueden usar claves SSH con el esquema HTTPS, por lo que este no es el caso. – timurb

0

Lo estás haciendo bien. Observe la línea 85 de libros de cocina/solicitud/recetas/rieles.rb: not_if do ::File.exists?("#{app['deploy_to']}/id_deploy"); end

I.e. intente iniciar sesión manualmente en la instancia y elimine el archivo id_deploy (presumiblemente en blanco) y reinicie el proceso.

^_^

Cuestiones relacionadas