- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个主机的系统以确保可用性。我只需要在一台主机上运行我的 Ansible 剧本。但是,其中一些主机可能无法访问。假设我有 host1、host2、host3 ... 如果无法访问 host1,我希望 Ansible 尝试 host2。如果可以访问 host2 并且 Ansible 成功运行了一些 bash 脚本,我希望 Ansible 跳过其余主机。有什么建议吗?
最佳答案
这可能不是最佳解决方案,但我找不到更好的解决方案。
gather_facts
为 False
,完全跳过需要跳过的主机(如果您不需要收集主机信息)。serial
到 1,因此剧本一次完全在一台主机上播放,而不是默认的 5 台主机并行播放。set_fact
在播放结束时将主机事实(在示例中名为 done
)设置为 True
,或使用 register
如果您需要更具体的条件(命令输出)。end_play
meta
在变量设置为 True
(或具有预期值,如果您使用 register
)时为任何主机执行的播放开始时。我用了Jinja2 template language以这种方式提取值(value):
for
遍历所有 hostvars
(Python dict 包含为 list 中所有主机设置的所有变量)。if
检查主机是否将 done
变量设置为 True
并返回字符串 True
如果是是。default
过滤器设置默认值,如果 done
没有为主机定义(这会导致错误 'dict object' has no attribute 'done '
).例如:
- hosts: all
serial: 1
gather_facts: False
tasks:
- meta: end_play
when: "{% for item in hostvars.values() %}{% if item.done|default(False) %}True{% endif %}{% endfor %}"
# The rest of the play goes here
- set_fact:
done: True
关于ansible - 在一台主机上成功运行时如何终止 Ansible 剧本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42376123/
这里有一个问题要问你 mysql + python 的人。 为什么这个 mysql sql 命令序列在我通过 Python 执行时不起作用,但在我通过 mysql CLI 执行时却起作用? #!/us
我正在处理来自 Android SQLite API 的 execSQL 函数。因为我将查询作为参数传递,所以我直接通过这个函数执行它,所以我不处理它(我不想这样做)以了解我们是否正在创建、插入、删除
基本上,我进行了一次 post 调用来获取访问 token ,并使用 RestTemplate 得到了“400 Bad Request”。 通过 Postman 进行的相同调用可以使用完全相同的参数成
我有一些数据将通过 http(s) 从 Android 应用程序发送到服务器。需要按顺序发送。 是否已经存在一种将 http 请求排队(针对同一服务器)并重试直到它们完成(不一定成功)的方法? 我的问
语境 我正在使用 Xcode 12.3 为 iOS 应用程序构建 watchOS 应用程序(即它不是独立的 watchOS 应用程序)。 由于用户在 watch 上的操作,我的 watchOS 应用程
我不知道为什么 HttpURLConnection 在 android 上失败但在 java Eclipse 上成功。我已经面对这个问题很多天了,并试图解决它,但从未通过。我的例子的代码如下: try
我有一个 Java Web 应用程序(使用 Spring),使用 Jetty 部署。如果我尝试在 Windows 计算机上运行它,一切都会按预期运行,但如果我尝试在 Linux 计算机上运行相同的代码
我有一个在 Windows XP 上的 Apache 上运行的 PHP 脚本,可以成功执行 LDAP 身份验证。我将相同的脚本复制到 Linux Red Hat 上的 Apache,并且 ldap_b
正如这篇文章的名称所暗示的,我正面临 Xcode 11 Beta 的构建系统问题。自 6 月以来,我一直在更新我的应用程序,但直到最近才尝试将其存档以供 TestFlight 使用。这样做后,我发现存
我在 Firefox 和 Chrome 之间遇到了不同的行为 JQuery.val('') 这是显示问题的 jsfiddle。 https://jsfiddle.net/mdqfbj/d4eovkg8
我在 Firefox 3.6 上的应用程序的文件上传功能遇到了一些问题。文件上传功能在 firefox 2.0 上是成功的,但最近我们的客户升级到 firefox 3.6 并且该功能停止工作。 我访问
我已经从 DigiCert 购买了 SSL 证书并将其安装到我的 Nexus 服务器(在 tomcat、jks 中运行) 它在 firefox 和 chrome 中运行良好(绿色地址栏表示收到了有效证
考虑以下用于清理目录的 python 函数: def cleanDir(path): shutil.rmtree(path) os.mkdir(path) 在 Windows 上(实际使用 p
注意:下面的代码与我的 Galaxy s5 和 Android 5.0 完美配合,但在使用我的 Galaxy s3 和 Android 4.1 时似乎总是无法保存。我的应用程序的所有其他部分在两部手机
我是一名优秀的程序员,十分优秀!