我想把剧本应用到本地主机
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。
使用以下内容创build相对于您的手册的文件host_vars/localhost :
--- ansible_connection: local ...
另外,你也可以用--connection=local选项来调用剧本,但是如果你想把一个任务委托给本地主机的话,最好有上面的文件。