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