mac generate git ssh timeout ansible ssh-agent

generate - Se bloquea GIT sobre SSH en Ansible, aunque se haya configurado el reenvío ssh-agent



git config ssh key (6)

Agregue a ansible.cfg el siguiente parámetro:

[defaults] sudo_flags=-HE

He configurado todo lo que pude encontrar, pero aún clonando un repositorio de GitHub se cuelga el proceso de aprovisionamiento.

Yo tengo:

  • servidor en known_hosts
  • .ssh / config

    Host github.com ForwardAgent yes StrictHostKeyChecking no

  • clave privada copiada

  • la clave pública está en authorized_keys
  • el comando se ejecuta como un usuario vagrant
  • la obra es:

    - name: Checkout from git git: [email protected]:username/repositoryname.git dest=/srv/website


En mi caso, el problema era la cadena del repositorio. Tenía un repositorio privado bitbucket establecido como:

git @ tsrs ...

pero debería ser:

ssh : // git @ tsrs ...

Observe la sutil ausencia del prefijo "ssh". La parte extraña es que si clono un repositorio de Github sin el "ssh", ¡funciona bien!


Quiero compartir la respuesta que funcionó para mí:

https://groups.google.com/forum/#!msg/ansible-project/u6o-sWynMjo/69UwJfJPq7cJ - Desde Ansible Google Group

Para ansible, ssh-add para cargar las claves ssh en su máquina host primero. Luego use "ssh" como tipo de conexión con reenvío habilitado.

Como:

$ ssh-add $ export ANSIBLE_TRANSPORT="ssh" $ export ANSIBLE_SSH_ARGS="-o ForwardAgent=yes"

Consulte el manual de ssh-add para ejecutar el agente.

Los documentos de Ansible para ssh-args son http://docs.ansible.com/intro_configuration.html#ssh-args


Solo para ampliar la respuesta de tillda, esa configuración puede colocarse en un archivo ansible.cfg junto con su libro de jugadas. p.ej:

ansible.cfg

[defaults] transport = ssh [ssh_connection] ssh_args = -o ForwardAgent=yes

Diría que es mejor hacer eso que establecerlo como una variable env, ya que colocarlo en un archivo conf es más declarativo y también minimizará los pasos necesarios para que otras personas con las que pueda estar trabajando continúen con un proyecto.

Documentos de Conf: http://docs.ansible.com/intro_configuration.html#the-ansible-configuration-file

Archivo de configuración de ejemplo: https://raw.github.com/ansible/ansible/devel/examples/ansible.cfg


Tuve un error:

bitbucket.org tiene una clave de host desconocida. Establezca accept_hostkey en True o agregue manualmente la clave de host antes de ejecutar el módulo de git

Tuve que agregar un parámetro accept_hostkey a mi comando del módulo git:

libro de jugadas:

tasks: - name: clone git: [email protected]:robusta-code/xyz.git dest=/app accept_hostkey=yes

ansible.cfg

[ssh_connection] ssh_args = -o ForwardAgent=yes


esto funciona para mí

- name: ensure known hosts shell: touch ~/.ssh/known_hosts - name: remove github.com from known host shell: ssh-keygen -R github.com # >> instead of > to keep existing known_hosts file - name: ensure github.com in known host shell: ssh-keyscan -H github.com >> ~/.ssh/known_hosts