web-dev-qa-db-fra.com

Comment utiliser les clés SSH de la machine distante dans le module git ansible

J'ai essayé d'obtenir Ansible pour provisionner une machine distante, et je veux que la machine distante soit configurée avec ses propres clés, et ait la possibilité de cloner les référentiels git de Bitbucket.

L'utilisateur est configuré, possède son propre id_rsa.pub et la clé a été enregistrée avec bitbucket.

Mais, lorsque j'utilise le module Ansible Git, il semble que le module essaie toujours d'utiliser les clés de la machine exécutant le playbook.

Comment puis-je faire en sorte que le module git utilise id_rsa.pub depuis la machine distante?

La tâche pertinente est la suivante:

- name: be sure prom-king has an up-to-date clone of its own repository
  git:
    repo: "ssh://[email protected]/prom-king.git"
    dest: /home/promking/prom-king
    accept_hostkey: yes
    clone: yes
    key_file: /home/promking/.ssh/id_rsa.pub
    update: yes

L'inventaire pertinent est le suivant

# inventory file for use with the vagrant box in the testing directory.
[prom-king]
192.168.168.192 ansible_ssh_Host=127.0.0.1 ansible_Sudo=true ansible_connection=ssh  ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=testing/.vagrant/machines/default/virtualbox/private_key
17
jschank

Voici comment je déploie à partir de Github en utilisant un ensemble de fichiers de clés sur le serveur distant. Si le paramètre keyfile pour git ne fonctionne pas, alors quelque chose ne va pas avec votre playbook:

- name: Creates .ssh directory for root
  Sudo: yes
  file: path=/root/.ssh state=directory

# This public key is set on Github repo Settings under "Deploy keys"
- name: Upload the private key used for Github cloning
  Sudo: yes
  copy: src=keys/github dest=/root/.ssh/github

- name: Correct SSH deploy key permissions
  Sudo: yes
  file: dest=/root/.ssh/github mode=0600

- name: Deploy site files from Github repository
  Sudo: yes
  git:
    repo: [email protected]:miohtama/foobar.git
    dest: /srv/Django/foobar
    key_file: /root/.ssh/github
    accept_hostkey: yes
    force: yes
29
Mikko Ohtamaa

Si je comprends bien, vous déployez ou souhaitez déployer votre clé privée sur la machine distante afin de pouvoir cloner le référentiel. Je pense que vous devriez plutôt utiliser le transfert de clés. Dans ton .ssh/config définissez ceci:

ForwardAgent yes

Ou si vous souhaitez limiter cela à Ansible, vous pouvez le définir dans votre ansible.cfg:

[ssh_connection]
ssh_args= -A
9
udondan