检查更改的状态时使ansible忽略模板中的变量

检查更改的状态时使ansible忽略模板中的变量,ansible,ansible-template,Ansible,Ansible Template,我需要创建一个包含随机字符串的模板文件 我只需要设置这个随机值一次,但是如果模板的静态部分得到更新,则最好重新使用角色文件来更新输出文件 我现在运行它的方式是,每次运行playbook时,都会生成一个新的随机字符串,因此模板会更改->上传一个新文件,并在目标文件中替换随机字符串 在检查模板是否更改时,如何使ansible忽略此变量?根据字符串的随机性,您可以生成一个密码,该密码对于任何给定主机都是相同的,只需在模板中使用即可 建议“每个系统生成唯一哈希的幂等方法是使用在运行之间一致的salt”:

我需要创建一个包含随机字符串的模板文件

我只需要设置这个随机值一次,但是如果模板的静态部分得到更新,则最好重新使用角色文件来更新输出文件

我现在运行它的方式是,每次运行playbook时,都会生成一个新的随机字符串,因此模板会更改->上传一个新文件,并在目标文件中替换随机字符串

在检查模板是否更改时,如何使ansible忽略此变量?

根据字符串的随机性,您可以生成一个密码,该密码对于任何给定主机都是相同的,只需在模板中使用即可

建议“每个系统生成唯一哈希的幂等方法是使用在运行之间一致的salt”:

请注意,为了减少结果值的可猜测性,您需要确保为种子使用每个主机唯一的内容(例如,如果您的playbook在本地运行,则
inventory\u主机名
可能总是
localhost
):


在创建和使用stat模块检查时,校验和是什么情况?将校验和保存到文件中,并检查其是否已更改。
{{ 'secretpassword' | password_hash('sha512', 65534 | random(seed=inventory_hostname) | string) }}
PLAY [localhost] *********************************************************************************

TASK [Debug inventory_hostname.] *****************************************************************
ok: [localhost] =>
  inventory_hostname: localhost

TASK [Debug idempotent random string.] ***********************************************************
ok: [localhost] =>
  msg: $6$rounds=656000$21889$o7dtKP5aAPzYxyDIn9wbTRJMoQboNXtp0snNtTDvcU030aKvMyxsLzTGUuunG/hW2lBSLh/MS/C/c6Dx/uXo51