合并两个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 }}
我有创建 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 }}