Я хочу применить сценарий к локальному хосту
ansible-playbook site.yml --limit localhost -vvvv
и я получаю
TASK [setup] *******************************************************************
<127.0.0.1> ESTABLISH SSH CONNECTION FOR USER: root
<127.0.0.1> SSH: EXEC ssh -C -vvv -o ControlMaster=no -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -tt 127.0.0.1 '/bin/sh -c '"'"'mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1456926531.44-231334347877988 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1456926531.44-231334347877988 `"'"'"''
<127.0.0.1> PUT /tmp/tmpBYEsRj TO /root/.ansible/tmp/ansible-tmp-1456926531.44-231334347877988/setup
<127.0.0.1> SSH: EXEC sftp -b - -C -vvv -o ControlMaster=no -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 '[127.0.0.1]'
fatal: [127.0.0.1]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}
Если я сбегу ssh localhost
это работает. Конфигурация:
$ cat ansible.cfg
[defaults]
hostfile = hosts
remote_user = root
host_key_checking = False
[ssh_connection]
control_path = /tmp
ssh_args = -o ControlMaster=no
Вам необходимо установить соединение на local
для localhost.
Создать файл host_vars/localhost
относительно вашей пьесы со следующим содержанием:
---
ansible_connection: local
...
В качестве альтернативы вы можете вызвать ansible-playbook с --connection=local
вариант, но хорошо иметь указанный выше файл на случай, если вы хотите делегировать задачу localhost.