合并两个ansible变量

Merge two ansible variable

我有创建 stonith 设备的集群命令需要转换为 ansible 任务:

- name: Create stonith
  shell: pcs stonith create {{ fence_name }} fence_vmware_soap pcmk_host_map="node2.domain.com:TEST_PCS_NODE_2;node1.domain.com:TEST_PCS_NODE_1" ipaddr={{ vcenter_ip }} ssl_insecure=1 login={{ vcenter_username }} passwd={{ vcenter_password }}

我已经为以下虚拟机名称创建了变量:

node2_name: node2.domain.com
vm2_name: TEST_PCS_NODE_2
node1_name: node1.domain.com
vm1_name: TEST_PCS_NODE_1

但在创建组合或合并或连接过滤器方面需要帮助才能获得以下语法: node2.domain.com:TEST_PCS_NODE_2;node1.domain.com:TEST_PCS_NODE_1

这不需要特殊的过滤器,您可以简单地使用带有变量插值的字符串:

{{ node2_name }}:{{ vm2_name }};{{ node1_name }}:{{ vm1_name }}

在任务中:

- name: Create stonith
  shell: pcs stonith create {{ fence_name }} fence_vmware_soap pcmk_host_map="{{ node2_name }}:{{ vm2_name }};{{ node1_name }}:{{ vm1_name }}" ipaddr={{ vcenter_ip }} ssl_insecure=1 login={{ vcenter_username }} passwd={{ vcenter_password }}