ansible - 使用检查模式时如何对 Ansible 模板任务运行验证?
问题描述
在检查模式 ( --check
) 下运行 Ansible 时,似乎validate
没有为template
任务运行该命令:
- name: Nginx is configured
template:
src: nginx.conf.j2
dest: /usr/local/etc/nginx/nginx.conf
validate: /usr/local/sbin/nginx -t -c %s
notify: Reload Nginx
由于 Ansible 能够在检查模式下运行时区分现有目标和要安装的新文件,因此它应该能够验证新文件。就像现在一样,如果模板包含错误,它只会在实际运行中显示,而不是在检查模式下显示。
有没有办法在检查模式下验证模板文件?
解决方案
我认为您正在寻找的东西是check_mode: no
具有非常令人困惑的双重否定名称,但有效地允许任务选择退出检查模式抑制。
但是,在您的情况下,您将希望首先将该文件暂存到某个地方,这样您就可以将模板渲染到磁盘并对其进行nginx
测试,而将mv /tmp/nginx.conf /usr/local/etc/nginx/nginx.conf
其保留在notify:
实际检查模式下。
推荐阅读
- node.js - Firebase 函数中的 Canvas 图像处理
- css - svg stroke-dashoffset 百分比值的基础是什么
- algorithm - 是否可以对 hyperloglog 进行去重,以便添加和删除元素会产生相对正确的唯一计数?
- express - 为什么我的密码没有被散列?
- html - 如何让一个班级有三种不同的颜色?
- java - 自定义属性不能在 Spring Boot 中注入
- spring - 如何在 Spring 的 @Meta 注释中动态分配值
- scala - Scala当我有两个键时如何使用reduceBykey
- android - Android 模拟器 Play 商店 - 无法从 Play 商店下载应用程序
- oracle - plsql 获取每个标题的最大序列行,并使用特定标题的下一个序列号更新列的空值