首页 > 解决方案 > 如果第一次失败,Ansible 使用不同的主机名

问题描述

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

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

目前我的剧本是

---
- hosts: raspberrypi

/etc/ansible/hosts

[raspberrypi]
raspberrypi
#raspberrypi.local

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

标签: ansiblehosts

解决方案


我不确定这在ansible中是否直接可行。

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

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

希望这会有所帮助。


推荐阅读