如何解决Ansible:无法合并2个组中的服务器变量
我正在使用ansible 2.9.6,目前我只有一台服务器,但是它在主机文件的2个组中。我为每个要应用不同防火墙规则的组配置了ufw,当我为“ db_servers”组运行剧本时,它会从“ web_servers”组中获取vars(ufw_rules)。考虑到服务器具有相同的名称,我希望var至少合并。但是,如果我在同一组服务器中为相同的服务器指定了不同的名称“ node_w”和“ node_d”,则它将与该组的相应变量一起使用。我没有将host_vars设置为引起问题。
[web_servers]
node1 ansible_host=123.123.123.1
[db_servers]
node1 ansible_host=123.123.123.1
web_servers.yml
ufw_rules:
- { service: http,port: 80,interface: '{{ ufw_default_public_interface }}',direction: '{{ ufw_service_default_direction }}',proto: tcp }
- { service: https,port: 443,proto: tcp }
db_servers.yml
ufw_rules:
- { service: mysql,port: 3306,interface: '{{ ufw_default_private_interface }}',direction: '{{ ufw_service_default_direction }}' }
关于为什么它没有获得相应的组变量,或者至少没有将它们都与相同名称的服务器合并的想法?
解决方法
Q:“ 期望合并的变量。”
A:请参见DEFAULT_HASH_BEHAVIOUR。例如
shell> ANSIBLE_HASH_BEHAVIOUR=merge ansible-playbook playbook.yml
将合并词典。报价:
“它不影响其值为标量(整数,字符串)或数组的变量”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。