GIT via SSH dans Ansible se bloque, même si ssh-agent de transfert est mis en place
J'ai mis en place everyhing j'ai pu trouver, mais encore le clonage d'une pension à partir de GitHub bloque le processus de configuration.
J'ai:
- serveur dans known_hosts
-
.ssh/config
Host github.com ForwardAgent yes StrictHostKeyChecking no
-
copié la clé privée
- clé publique est en authorized_keys
- la commande s'exécute en tant que
vagrant
utilisateur -
le jeu est:
- name: Checkout from git git: [email protected]:username/repositoryname.git dest=/srv/website
- Assurez-vous que vous n'êtes pas à l'exécution de cette tâche avec
sudo
, parce qu'il rompt l'agent de transfert. - même si le transfert est défini pour l'utilisateur root?
- le transfert est une chaîne à partir de votre
ssh-agent
port SSH port, et en passant parsudo
les sauts de cette chaîne, sauf si vous travaillez autour de ce. Voir stackoverflow.com/a/24134109/239247
Vous devez vous connecter pour publier un commentaire.
Juste pour élargir sur tillda de réponse, que la config peut être placé dans une ansible.fichier cfg à côté de votre playbook. par exemple:
ansible.cfg
Je dirais que c'est de mieux à faire que de le définir comme une variable env, en la plaçant dans un fichier de conf est à la fois plus déclaratif et aussi permettra de minimiser les étapes nécessaires pour d'autres personnes que vous pouvez travailler avec d'aller avec un projet.
Conf docs:
http://docs.ansible.com/intro_configuration.html#the-ansible-configuration-file
Exemple de fichier de configuration:
https://raw.github.com/ansible/ansible/devel/examples/ansible.cfg
Je veux partager la réponse qui a fonctionné pour moi:
https://groups.google.com/forum/#!msg/ansible-projet/u6o-sWynMjo/69UwJfJPq7cJ - De Ansible Groupe Google
L'Ansible docs pour
ssh-args
sont http://docs.ansible.com/intro_configuration.html#ssh-argscela fonctionne pour moi
Ajouter à ansible.cfg le paramètre suivant:
Dans mon cas, le problème a été le référentiel de chaîne de caractères. J'ai eu un bitbucket privé référentiel défini comme:
git@tsr...
mais il devrait être:
ssh://git@tsr...
Remarquez la subtile absence du préfixe "ssh". Ce qui est étrange, c'est que si je cloner un dépôt github sans le "ssh", il fonctionne très bien!
J'ai eu une erreur :
J'ai dû ajouter un
accept_hostkey
paramètre à mon git module de commande :playbook :
ansible.cfg