Ansible SSH ERROR connection in localhost

走远了吗. 提交于 2019-12-03 04:14:19

问题


I have this error when I launch my playbook against the localhost host.

TASK [setup] *******************************************************************
fatal: [127.0.0.1]: UNREACHABLE! => {"changed": false, "msg": "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}
to retry, use: --limit @deploy-test-env.retry

PLAY RECAP *********************************************************************
127.0.0.1                  : ok=0    changed=0    unreachable=1    failed=0

And my hosts file have this config:

[local]
127.0.0.1

What is the problem?

Thanks!


回答1:


Ansible by default tries to connect through ssh. For localhost you should set the connection to local.

You can define this when calling the playbook:

ansible-playbook playbook.yml --connection=local

Define it in your playbook:

- hosts: local
  connection: local

Or, preferable, define it as a host var just for localhost/127.0.0.1. Create a file host_vars/127.0.0.1 relative to your playbook with this content:

ansible_connection: local

You also could add it as a group var in your inventory:

[local]
127.0.0.1

[local:vars]
ansible_connection=local

or as a host var:

[local]
127.0.0.1   ansible_connection=local

See Behavioral Parameters in docs.




回答2:


It could be done way more easier.

Under the [defaults] section of the ansible.cfg file, just paste the following line:

transport = local



回答3:


What works for me is not including the localhost in the inventory and only specifying it in the hosts pattern.

i.e. hosts: localhost

This seems to imply local connection to ansible



来源:https://stackoverflow.com/questions/37184699/ansible-ssh-error-connection-in-localhost

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!