remote - how to delete tag git
Autenticación Git en Chef (6)
ssh_wrapper "ssh -i /some/path/id_rsa"
En caso de que alguien se encuentre con esto, lo anterior no funcionó para mí, seguí recibiendo el error:
error: cannot run ssh -i /some/path/id_rsa: No such file or directory
Lo que especifica ssh_wrapper es establecer la variable de entorno GIT_SSH, y resulta que no se pueden proporcionar parámetros en la variable de entorno GIT_SSH (ver clon de Git con SSH personalizado usando el error GIT_SSH ).
En cambio, primero tendría que escribir su secuencia de comandos en un archivo, y luego configurarlo en un archivo GIT_SSH.
Asi que:
file "/some/path/git_wrapper.sh" do
owner "your_user"
mode "0755"
content "#!/bin/sh/nexec /usr/bin/ssh -i /some/path/id_rsa /"$@/""
end
Y cambie la parte del recurso git a:
git "/opt/mysources/couch" do
repository "git://git.apache.org/couchdb.git"
reference "master"
action :sync
ssh_wrapper "/some/path/git_wrapper.sh"
end
Al implementar una aplicación con Chef, tengo la base de código configurada para ser clonada desde un repositorio github privado con el siguiente recurso:
git ''/mnt/application'' do
repository ''[email protected]:organization/repository''
reference ''master''
action :sync
user node.application.user
group node.application.user
end
Sin embargo, después de escanear la documentación del recurso git
, no puedo ver cómo se proporciona el archivo clave para la autenticación. También estoy confundido en cuanto a cómo almacenar esta clave en una bolsa de datos, ya que el archivo contiene un montón de líneas nuevas. ¿Algunas ideas?
Deberías probar este libro de cocina https://github.com/poise/application_git . Resuelve el problema que mencionaste.
Con este libro de cocina, puede usar el recurso application_git
, especificando la clave privada:
application_git ''/srv/myapp'' do
repository ''[email protected]:organization/repository''
deploy_key ''/some/path/id_rsa''
end
Pasé por el mismo problema, lo único que me faltaba era este comando, entonces todo salió bien:
GIT_SSH_COMMAND="ssh -i ~/.ssh/bitbucket_rsa"
La referencia y para mis pasos completos se pueden encontrar en mi blog: http://www.sadafnoor.com/blog/simplest-way-to-write-your-chef-cookbook-that-git-clone-private-repo-using-bitbucket-deploy-key/
Según la hint de , esta fue la forma más fácil para mí: solo tenía que asegurarme de configurar el usuario / grupo correcto y desactivar el StrictHostKeyChecking:
git ''/path/to/destination'' do
environment ''GIT_SSH_COMMAND'' => ''ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /path/to/private_key''
repository ''[email protected]:your/repo.git''
reference ''master''
action :sync
user ''vagrant''
group ''vagrant''
end
Usamos la configuración similar para Mercurial, pero debería ser lo mismo con Git, espero.
Usamos claves ssh para autenticar. La clave se almacena en una bolsa de datos cifrada (con nuevas líneas reemplazadas por "/ n"). En primer lugar, esta clave privada se crea en el nodo de la bolsa de datos.
git_key = Chef::EncryptedDataBagItem.load( "private_keys", "git_key" )
file "/some/path/id_rsa" do
content git_key[''private'']
end
Y luego úsela cuando se conecte al repositorio de git usando ssh_wrapper:
git "/opt/mysources/couch" do
repository "git://git.apache.org/couchdb.git"
reference "master"
action :sync
ssh_wrapper "ssh -i /some/path/id_rsa" #the path to our private key file
end
si está en una distribución de Linux, almacene su clave ssh en <your home directory>/.ssh
y agregue github.com a <your home directory>/.ssh/known_hosts
Puede agregar github.com a known_hosts usando el siguiente comando
ssh-keyscan -H github.com >> <your home directory>/.ssh/known_hosts
Después de hacer esto, puede clonar su repositorio usando el recurso git
de chef