【问题标题】:ansible-playbook consistenly fails as gathering facts phaseansible-playbook 在收集事实阶段始终失败
【发布时间】:2023-04-02 15:00:02
【问题描述】:

仅在万不得已的情况下才在这里询问。 :-)

我的任务是实施一些新的 ansible 剧本,因为我是这里唯一一个对配置工具有任何经验的人。对我来说问题是我只使用过 puppet,而不是 ansible。然而,无论我为 ansible 写什么,我都会不断得到:

任务[收集事实] ****************************************** ****************************************************** ****************************************************** ****** 致命:[server1.example.com]:失败! => {"failed": true, "msg": "连接插件 'heck' 没有找到"} 致命:[server2.example.com]:失败! => {"failed": true, "msg": "the connection plugin 'heck' was not found"}

对此错误的网络搜索没有结果,但起初我认为我的这些服务器的 ssh 密钥可能有问题。但是,测试表明我可以在没有密码的情况下使用 ssh 登录。所以,现在我被困住了。有人有解决这个问题的想法吗?

【问题讨论】:

  • 有一条错误信息指导你:“未找到连接插件'heck'”。为什么要覆盖默认的ssh 插件?
  • 我没有设置这个ansible-server,所以我不知道有人更改了默认插件。更让我困扰的是,设置这个服务器的人可以成功运行我创建的大部分 yaml。我只是不知道我们的两台笔记本电脑有什么不同。
  • 您能分享您的库存文件或 ansible.cfg 的内容吗?具体来说,定义使用什么连接插件(“哎呀”)的代码。
  • 从我可以看到库存文件只包含一个组标签和它下面的一对服务器。我一直没能找到这个连接插件是在哪里定义的。

标签: ansible


【解决方案1】:

我也收到了这个错误:

失败了! => {"failed": true, "msg": "the connection plugin 'heck' was not found"}

我的问题是我试图在检查模式下运行,但在我的命令中留下了一个“-”。

我这样做了:

ansible-playbook foo.yml -check

而不是这个:

ansible-playbook foo.yml --check

通过省略第二个“-”,ansible-playbook 认为我正在使用连接选项。

【讨论】:

  • 对我来说,添加两个“--”使它在 RHEL 8 上工作而不是一个。我知道为什么......
【解决方案2】:

我终于让一切正常了,我相信问题是由于我的 git 环境造成的,这是我运行剧本的地方。我最终卸载了 git 并重新安装它,现在一切正常。当我无法在服务器或笔记本电脑上提交任何文件更改时,我看到了 git 问题。由于笔记本电脑一直在工作,我在那里进行了重新安装,并“修复”了服务器。

【讨论】:

    【解决方案3】:

    您只用 1 个破折号而不是 2 个破折号进行“检查”。

    【讨论】:

      猜你喜欢
      • 2017-01-03
      • 2017-09-29
      • 2022-01-12
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多