我有许多环境,需要定制一堆文本文件,以便像 mule 这样的东西与正确的端点对话。
对于这种环境,这有效:
ansible-playbook test03.yml
环境之间的唯一区别(从 ansible 的角度来看)是 ./roles/esb/vars/main.yml 中保存的信息。
我考虑过使用 svn 为每个环境保留一个 vars/main.yml,所以每次我需要配置一个环境时,我都会先检查角色,然后再检查该环境的 vars/main.yml,然后再运行上面的命令。
对我来说,这不是一个优雅的解决方案。我怎样才能做得更好?
目录结构
./test03.yml
./roles/esb/vars/main.yml
./roles/esb/tasks/main.yml
./roles/esb/templates/trp.properties.j2
./test03.yml
---
- hosts: test03-esb
gather_facts: no
roles:
- esb
./roles/esb/vars/main.yml
---
jndiProviderUrl: 'jnp://mqendpoint.company.com:1099'
trp_endpoint_estask: 'http://tmfendpoint.company.com:8080/tmf/estask'
trp_endpoint_builderQ: 'jnp://mqendpoint.company.com:1099'
./roles/esb/tasks/main.yml
---
- name: replace variables in templates
template: src=trp.properties.j2 dest=/path/to/mule/deploy/conf/trp.properties
./roles/esb/templates/trp.properties.j2
trp.endpoint.estask={{ trp_endpoint_estask }}
trp.endpoint.builderQ={{ trp_endpoint_builderQ }}