我需要创建一个包含随机字符串的模板文件。
我只需要设置一次这个随机值,但如果模板的静态部分得到更新,重新使用角色文件来更新输出文件会很不错。
我现在正在运行的方式,每次运行剧本时,都会生成一个新的随机字符串,因此模板会被更改 - >上传新文件,并在目标文件中替换随机字符串。
在检查模板是否更改时,如何让ansible忽略此变量?
答案 0 :(得分:0)
根据 随机字符串的含义,您可以生成密码,使其对于任何给定的主机始终相同,只需在模板中使用即可。
Ansible Jinja2 filter docs建议"一种为每个系统生成唯一哈希的幂等方法是使用在运行之间保持一致的盐":
{{ 'secretpassword' | password_hash('sha512', 65534 | random(seed=inventory_hostname) | string) }}
请注意,为了降低结果值的可猜测程度,您需要确保使用每个主机对种子唯一的内容(例如inventory_hostname
可能始终为{{1如果您的Playbook在本地运行):
localhost