【问题标题】:Ansible use different hostname if first fails如果第一次失败,Ansible 使用不同的主机名
【发布时间】:2019-04-27 11:24:57
【问题描述】:

我有许多树莓派,我换掉了(一次只运行一个)并运行 ansible 。大多数 pi 回复 ping raspberrypi 但我有一个回复 ping raspberrypi.local

与其记住在执行 playbook 之前手动 ping 正确的主机名,是否有办法在第一次失败时针对不同的主机名运行 playbook?

目前我的剧本是

---
- hosts: raspberrypi

/etc/ansible/hosts

[raspberrypi]
raspberrypi
#raspberrypi.local

如果我取消注释第二个主机名并且第一个失败,那么 playbook 将失败并且不会在 .local 主机名上运行

【问题讨论】:

  • FWIW:修复覆盆子的设置,而不是尝试在 Ansible 中破解解决方法 ;-) ... 作为提示:尽量避免组和主机之间的名称冲突 - 这个可能会导致剧本无法在您可能会遇到的系统上运行

标签: ansible hosts


【解决方案1】:

我不确定这在 ansible 中是否可以直接实现。

但我能想到的一个技巧是创建一个主机列表,将它们存储在一个变量中,使用 localhost 进行 ping。如果 ping 成功,则创建一个自定义主机组并执行您想要执行的任务。

你还在用 serial: 1 执行你的剧本吗?

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    您可以对两个主机组运行该游戏。

    - hosts: raspberrypi:raspberrypi.local
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-09
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 2011-10-12
      • 2019-04-19
      • 1970-01-01
      相关资源
      最近更新 更多