ansible - 如果第一次失败,Ansible 使用不同的主机名
问题描述
我有许多树莓派,我换掉了(一次只运行一个)并运行 ansible 。大多数 pi 回应,ping raspberrypi
但我有一个回应ping raspberrypi.local
与其记住在执行剧本之前手动 ping 正确的主机名,是否有办法在第一次失败时针对不同的主机名运行剧本?
目前我的剧本是
---
- hosts: raspberrypi
和/etc/ansible/hosts
[raspberrypi]
raspberrypi
#raspberrypi.local
如果我取消注释第二个主机名并且第一个失败,那么剧本将失败并且不会在.local
主机名上运行
解决方案
我不确定这在ansible中是否直接可行。
但是我能想到的一个技巧是创建一个主机列表,将它们存储在一个变量中,使用 localhost 进行 ping。如果 ping 成功,则创建一个自定义主机组并执行您想要执行的任务。
您还在使用 serial: 1 执行您的剧本吗?
希望这会有所帮助。
推荐阅读
- flutter - 在flutter web中分享来自url的图像
- php - 选择所有左表列和特定右表列时在 PHP 中输出 MySQL 左连接
- pyspark - 列值中的匹配字符串返回无值
- three.js - 当对象位于旋转组内时,如何将对象放置在相机前面?
- javascript - 为什么十六进制颜色不适用于 SVG 的 utf8 数据 URL
- parameter-passing - 无法将 IG 列的值传递给 LOV 参数
- javascript - 我如何将对象数组转换为数组,然后是数组的唯一计数
- wkwebview - 如何启用 WKURLSchemeHandler 来完成主线程的工作?
- r - 如何验证以使用 rtweet?
- sql - Snowflake-SQL - 将行从一个查询添加到另一个查询