运行Ansible playbook时出现UNREACHABLE错误

时间:2018-06-14 10:22:14

标签: ansible

我可以访问ssh到目标计算机,它可以工作,但每当我运行这个剧本时,我都会收到此错误输出:

sudo ansible-playbook ansible-playbook-test.yml

PLAY [openstack] *****************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************************
fatal: [amachine]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive).\r\n", "unreachable": true}
        to retry, use: --limit @/blah/ansible-play/ansible-playbook-test.retry

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

我的剧本就像这样简单:

---
# hosts could have been "remote" or "all" as well

- hosts: openstack
  tasks:
    - name: test connection
      ping:
      remote_user: djuarezg
      vars:
        ansible_ssh_extra_args: '-K -o ControlPath=none'



- hosts: openstack
  tasks:
    - name: Create Swarm cluster
      command: mkdir djg
      vars:
        ansible_ssh_extra_args: '-K -o ControlPath=none'

我试图使用ansible_ssh_extra_args: '-K -o ControlPath=none'来查看它是否能够转发Kerberos票证,但任何类型的连接都足够了。

4 个答案:

答案 0 :(得分:1)

试试这个:

$ ansible-playbook --user=djuarezg -vvv ansible-playbook-test.yml

检查输出中的SSH args

答案 1 :(得分:1)

添加用户名称已为我修复-tableView.reloadSections

-u deploy

答案 2 :(得分:1)

通过跳转框,大型主机库存出现了类似的问题。 我的位置很高,可以加快大型比赛的速度,但是在引入跳箱时效果不佳,我碰到了这个随机无法到达的问题。

解决方案是减少分叉数量。
15可以,但是10是我的环境的最佳选择。

答案 3 :(得分:1)

这对我有用:

$ cd /root/.ssh
$ ssh-keygen -t rsa

以 id_rsa 的名称保存密钥

$ cat id_rsa.pub

复制整个密钥并粘贴到文件(位于路径:/.ssh/ 或 /root/.ssh 的主节点)中:

$ sudo nano authorized_keys

然后运行此检查:

$ ansible all -m ping -u root

输出应该是这样的:

master-node | SUCCESS => {
    "changed": false,
    "ping": "pong"
}