31

我已经设置了所有我能找到的东西,但仍然从 GitHub 克隆一个 repo 会挂起配置过程。

我有:

  • known_hosts 中的服务器
  • .ssh/配置

    Host github.com
      ForwardAgent yes
      StrictHostKeyChecking no
    
  • 复制的私钥

  • 公钥在authorized_keys
  • 该命令以vagrant用户身份运行
  • 该剧是:

    - name: Checkout from git
      git: repo=git@github.com:username/repositoryname.git dest=/srv/website
    
4

6 回答 6

61

只是为了扩展tillda的答案,该配置可以放在您的剧本旁边的 ansible.cfg 文件中。例如:

ansible.cfg

[defaults]
transport = ssh

[ssh_connection]
ssh_args = -o ForwardAgent=yes

我想说这样做比设置为 env 变量更好,因为将它放在 conf 文件中既更具声明性,也可以最大限度地减少您可能与之合作的其他人进行项目所需的步骤。

Conf 文档: http ://docs.ansible.com/intro_configuration.html#the-ansible-configuration-file

示例配置文件: https ://raw.github.com/ansible/ansible/devel/examples/ansible.cfg

于 2014-03-31T08:37:16.193 回答
14

我想分享对我有用的答案:

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

对于 ansible,ssh-add 首先在您的主机中加载 ssh 密钥。然后使用“ssh”作为启用转发的连接类型。

如:

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

有关运行代理的 ssh-add,请参阅手册。

Ansible 文档ssh-argshttp://docs.ansible.com/intro_configuration.html#ssh-args

于 2014-01-29T09:59:19.357 回答
7

这对我有用

- 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
于 2014-02-04T18:48:03.437 回答
1

将以下参数添加到 ansible.cfg:

[defaults]
sudo_flags=-HE
于 2016-07-14T17:44:03.180 回答
1

就我而言,问题是存储库字符串。我有一个 bitbucket 私有存储库设置为:

混帐@tsrs...

但应该是:

ssh ://git@tsrs...

请注意前缀“ssh”的细微缺失。奇怪的是,如果我克隆一个没有“ssh”的 github 存储库,它可以正常工作!

于 2017-03-20T16:16:15.093 回答
0

我有一个错误:

bitbucket.org 有一个未知的主机密钥。将 accept_hostkey 设置为 True 或在运行 git 模块之前手动添加主机密钥

accept_hostkey我必须在我的 git 模块命令中添加一个参数:

剧本:

tasks:
    - name: clone
      git: repo=git@bitbucket.org:robusta-code/xyz.git
           dest=/app
           accept_hostkey=yes

ansible.cfg

[ssh_connection]
ssh_args = -o ForwardAgent=yes
于 2016-02-18T14:35:36.000 回答