usar tag remote how hacer drop delete create como git ssh chef

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



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