我很努力地找出如何覆盖Ansible模块选项默认值,而无需用变量手动滚动它。更好的是,如果有一种方法可以覆盖仅适用于一部分主机的模块选项默认值。覆盖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
环境变量或其他东西控制。那么一般情况下,我想为一些主机重写任何类型的模块选项,但是否则会回到模块默认值?
既然有对夫妇更多的在这样的环境这样的基本差异,这是相当繁琐洒这种默认的使用查找变量遍布以防万一它被使用非默认安装在主机上运行的地方。有没有办法做得更好?