Ansible 本地配置文件无法识别密钥



我有一个vagrant盒子,里面有precise32启动并运行。

我在~/Workspace/vagrans/ansible文件夹中,其中有一个文件ansible.cfg,其中包含以下条目:

[defaults]
inventory = ./dms/dev
private_key_file = /home/pkaramol/Workspace/vagrans/vagrant/precise32/.vagrant/machines/default/virtualbox/private_key 

这有效:

ansible -m ping all --private-key=/home/pkaramol/Workspace/vagrans/vagrant/precise32/.vagrant/machines/default/virtualbox/private_key -u vagrant
tsrv1 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

这不会:

ansible-playbook playbooks/testplay.yml 
PLAY ***************************************************************************
TASK [setup] *******************************************************************
fatal: [tsrv1]: UNREACHABLE! => {"changed": false, "msg": "ERROR! SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue", "unreachable": true}
PLAY RECAP *********************************************************************
tsrv1                      : ok=0    changed=0    unreachable=1    failed=0   

这是剧本:

- hosts: testservers
  tasks:
    - name: just pinging
      ping:

这是库存文件

[testservers]
tsrv1

我一定是想念(?

无需像您建议的那样在配置文件和剧本之间拆分凭据。

您可以在private_key_file旁边的ansible.cfg中使用remote-user参数:

[defaults]
inventory = ./dms/dev
remote-user = vagrant
private_key_file = /home/pkaramol/Workspace/vagrans/vagrant/precise32/.vagrant/machines/default/virtualbox/private_key

只需要在剧本中明确设置remote_user即可vagrant

- hosts: testservers
  remote_user: vagrant
  tasks:
    - name: just pinging
      ping:

最新更新