如何确保我的 .config 和我的 jinja2 模板随着时间的推移保持同步?
How do I ensure my .config and my jinja2 template stay in sync over time?
我们正在使用 Ansible 来部署组件,并且在编写 jinja2 模板时,我突然想到让我的 .config 与我的 .config.j2 保持同步将是我需要“记住”的事情.
有没有比“记住”更好的工具来保持 j2 与最新的配置文件同步?我对所有想法持开放态度……合并检查?测试?
您可以做几件事。以下是我关于如何做到这一点的一些想法。
- 使用
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
- 在 运行 之前使用
pre_tasks
你的角色到 update/sync .config
来自 .config.j2
的文件
- 使用 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 可以帮助你。
我们正在使用 Ansible 来部署组件,并且在编写 jinja2 模板时,我突然想到让我的 .config 与我的 .config.j2 保持同步将是我需要“记住”的事情.
有没有比“记住”更好的工具来保持 j2 与最新的配置文件同步?我对所有想法持开放态度……合并检查?测试?
您可以做几件事。以下是我关于如何做到这一点的一些想法。
- 使用
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
- 在 运行 之前使用
pre_tasks
你的角色到 update/sync.config
来自.config.j2
的文件
- 使用 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 可以帮助你。