web-dev-qa-db-ja.com

ansible gitモジュールでリモートマシンのSSHキーを使用する方法

私はAnsibleにリモートマシンをプロビジョニングさせようとしましたが、リモートマシンに独自のキーを設定し、Bitbucketからgitリポジトリをクローンする機能を持たせたいと思っています。

ユーザーがセットアップされ、独自のid_rsa.pubがあり、キーがbitbucketに登録されています。

しかし、Ansible Gitモジュールを使用すると、モジュールが常にプレイブックを実行しているマシンのキーを使用しようとするように見えます。

リモートマシンからid_rsa.pubを使用するgitモジュールを取得するにはどうすればよいですか?

関連するタスクは次のとおりです。

- 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

関連する在庫はこちら

# 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

これは、リモートサーバーに設定されたキーファイルを使用してGithubからデプロイする方法です。 keyfilegitパラメーターが機能しない場合、プレイブックに何か問題があります。

- 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

私がこれを正しく理解している場合、リポジトリを複製できるように、秘密鍵をリモートマシンにデプロイします-またはそのようにします。代わりに、キー転送を使用する必要があると思います。あなたの.ssh/configこれを設定します:

ForwardAgent yes

または、これをAnsibleに制限する場合は、ansible.cfg

[ssh_connection]
ssh_args= -A
9
udondan