我有以下standalone.xml配置 - > - standalone.xml(dev) - standalone.xml(staging) - prod-standalone1.xml(生产集群1) - prod-standalone2.xml(生产集群2)。 - prod-standalone3.xml(生产集群3)。
尝试使用ansible根据它们所在的群集/主机部署这些配置中的每一个。这些配置进入标准的独立配置目录 - >飞路/独立/配置/ standalone.xml。
答案 0 :(得分:1)
请参阅ansible docs中的Splitting Out Host and Group Specific Data。您可以在group_vars文件夹中为每个主机配置文件。
如果主持人被命名为'foosball'
/etc/ansible/host_vars/foosball
[ raleigh]
127.0.0.1
[webservers]
127.0.1.2
在群组'raleigh'和'webservers'中,以下位置的YAML文件中的变量将可供主持人使用:
/etc/ansible/group_vars/raleigh
/etc/ansible/group_vars/webservers
答案 1 :(得分:1)
我认为解决方案是添加group_vars / host_vars,然后使用它们来确定要复制的文件。另一个解决方案是创建一个单独的standalone.xml文件,该文件位于templates目录中,然后您可以通过生成然后复制的变量来操作standalone.xml文件中的值。
dev (host file) ->
192.168.3.1
staging (host file) ->
192.168.3.2
prod (host file) ->
192.168.3.3
/etc/ansible/group_vars/all ->
wildfly_home: /usr/local/wildfly/
wildfly_config: "{{ wildfly_home }}standalone/configuration/"
/etc/ansible/host_vars/192.168.3.1 -> (contents)
standalone_config_path: dev/
/etc/ansible/host_vars/192.168.3.2 -> (contents)
standalone_config_path: staging/
/etc/ansible/host_vars/192.168.3.3 -> (contents)
standalone_config_path: prod/
roles/my-role/files/dev/standalone.xml
roles/my-role/files/staging/standalone.xml
roles/my-role/files/prod/standalone.xml
roles/my-role/tasks/main.yml -> (contents)
copy: src={{ standalone_config_path }}standalone.xml dest=dest={{ wildfly_config }}