【发布时间】:2023-10-06 11:47:02
【问题描述】:
我正在努力找出如何在不使用变量手动滚动的情况下覆盖 Ansible 模块选项默认值。如果有一种方法可以仅针对一部分主机覆盖模块选项默认值,那就更好了。
说在几个主机上,Git 可以在/bin/git 获得,正如预期的那样。在其他几个主机上,Git 位于/usr/local/bin/git。如何覆盖后一组主机的 git 模块 executable 选项默认值?
目前我正在设置一个主机组变量,例如:
git_executable=/usr/local/bin/git
并在任何地方使用default(omit) 过滤器git 使用如下:
- git: "executable={{git_executable|default(omit)}} ..."
因此它在定义它的主机上被正确覆盖,而在其他主机上被忽略。
executable 可能不是这里最好的例子,因为它可以通过PATH 环境变量或其他东西来控制。那么,一般来说,我只想为某些主机覆盖但又回退到模块默认值的任何类型的模块选项呢?
由于在这个环境中存在更多这样的基本差异,因此在所有地方都使用变量散布这种 默认 查找非常繁琐,以防万一它在没有-默认设置。有没有办法更好地做到这一点?
【问题讨论】:
标签: module default default-value ansible