Ansible 本地配置文件无法识别密钥?
Ansible local configuration file not recognizing key?
我有一个 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
我一定是漏了什么(?)...
只需将剧本中的 remote_user
明确设置为 vagrant
- hosts: testservers
remote_user: vagrant
tasks:
- name: just pinging
ping:
不需要像 那样在配置文件和 playbook 之间拆分凭据。
您可以在 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
我有一个 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
我一定是漏了什么(?)...
只需将剧本中的 remote_user
明确设置为 vagrant
- hosts: testservers
remote_user: vagrant
tasks:
- name: just pinging
ping:
不需要像
您可以在 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