web-dev-qa-db-ja.com

ssh-agent転送が設定されていても、AnsibleでSSHを介したGITがハングする

見つけることができるものはすべて設定しましたが、GitHubからレポを複製するとプロビジョニングプロセスがハングします。

私が持っています:

  • known_hostsのサーバー
  • .ssh/config

    Host github.com
      ForwardAgent yes
      StrictHostKeyChecking no
    
  • コピーされた秘密鍵

  • 公開鍵はauthorized_keysにあります
  • コマンドはvagrantユーザーとして実行されます
  • 演劇は:

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

ティルダの答えを拡張するために、その構成は、プレイブックと一緒にansible.cfgファイルに配置できます。例えば。:

ansible.cfg

[defaults]
transport = ssh

[ssh_connection]
ssh_args = -o ForwardAgent=yes

Envファイルとして設定するよりも、confファイルに配置する方が宣言的であり、プロジェクトに参加するために作業している他の人に必要な手順を最小限に抑えるため、それを行う方が良いと思います。

ドキュメントの確認: http://docs.ansible.com/intro_configuration.html#the-ansible-configuration-file

設定ファイルの例: https://raw.github.com/ansible/ansible/devel/examples/ansible.cfg

60
Tom Seldon

私のために働いた答えを共有したい:

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

可能な場合は、ssh-addを使用して、最初にホストマシンにsshキーをロードします。次に、転送タイプを有効にして接続タイプとして「ssh」を使用します。

といった:

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

エージェントを実行するためのssh-addのマニュアルを参照してください。

ssh-argsのAnsibleドキュメントは http://docs.ansible.com/intro_configuration.html#ssh-args です

14
tillda

これは私のために働く

- 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
7
locojay

私の場合、問題はリポジトリ文字列でした。次のように設定されたbitbucketプライベートリポジトリがありました。

git @ tsrs ...

ただし、次のようになります

ssh:// git @ tsrs ...

接頭辞「ssh」が微妙に欠けていることに注意してください。奇妙な部分は、「ssh」を使用せずにgithubリポジトリを複製すると、正常に機能することです!

1
Vini.g.fer

Ansible.cfgに次のパラメーターを追加します。

[defaults]
Sudo_flags=-HE
1
Lebnik

エラーが発生しました:

bitbucket.orgには不明なホストキーがあります。accept_hostkeyをTrueに設定するか、gitモジュールを実行する前にホストキーを手動で追加します

Git moduleコマンドにaccept_hostkeyパラメーターを追加する必要がありました。

プレイブック:

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

ansible.cfg

[ssh_connection]
ssh_args = -o ForwardAgent=yes
0
Nicolas Zozol