如何确保我的 .config 和我的 jinja2 模板随着时间的推移保持同步?

How do I ensure my .config and my jinja2 template stay in sync over time?

我们正在使用 Ansible 来部署组件,并且在编写 jinja2 模板时,我突然想到让我的 .config 与我的 .config.j2 保持同步将是我需要“记住”的事情.

有没有比“记住”更好的工具来保持 j2 与最新的配置文件同步?我对所有想法持开放态度……合并检查?测试?

您可以做几件事。以下是我关于如何做到这一点的一些想法。

  1. 使用 Makefile。有了它的帮助,而不是做 ansible-playbook -i BLAH BLAH BLAH playbok.yml,你只需要为此设置一些规则并使用一个简单的命令,比如 make run-ansible 从同步到应用 ansible playbook 的所有步骤都适合你.

    看看这个伪生成文件:
.PHONY : run-ansible run sync
sync:
    cp .config.j2 .confg
run:
    ansible-playbook -i host -u user playbook.yml
run-ansible: sync run
  1. 在 运行 之前使用 pre_tasks 你的角色到 update/sync .config 来自 .config.j2
  2. 的文件
  3. 使用 conditional include. In case the .config is not updated, run another tasks which generate .config from .config.j2. Doing such a thing is so simple. This link 可以帮助你。