Ansible 使用单个定义的变量传递多个值
Ansible Pass multiple vaules with single defined Variable
每次使用以下任务创建新服务器时,我都需要将服务器添加到服务组。
任务
- name: Create a service group
a10_service_group_v3:
validate_certs: no
host: "{{ item.0.a10_host }}"
state: "{{ item.1.service_state }}"
username: "{{ item.0.user }}"
password: "{{ item.0.pass }}"
service_group: "{{ item.1.group_name }}"
reset_on_server_selection_fail: yes
servers:
- name: "{{ item.1.server_name1 }}"
port: "{{ item.1.server_port1 }}"
overwrite: yes
write_config: yes
ignore_errors: yes
with_nested:
- "{{ a10 }}"
- "{{ service_group }}"
变量:
service_group:
- group_name: bif_sg
service_state: present
server_name1: bif01
server_port1: 80
我需要帮助来传递 server_name 和 server_port 的变量,假设我有 3 个服务器要添加到任务中的服务组,我需要添加 3 次 server_name 1, server_port1 个
server_name2个,server_port2个......
每次我添加服务器时,我也需要更新任务:(
有没有办法在任务中使用单个定义值多次传递 sever_name 和 serer_port。
我希望 server_group 有一个 列表 服务器,重构你的变量以包含服务器列表而不是一堆单独的子键:
service_group:
- group_name: bif_sg
service_state: present
servers:
- name: bif01
port: 80
- name: bif02
port: 8080
在你的任务中:
...
servers: "{{ item.1.servers }}"
...
每次使用以下任务创建新服务器时,我都需要将服务器添加到服务组。
任务
- name: Create a service group
a10_service_group_v3:
validate_certs: no
host: "{{ item.0.a10_host }}"
state: "{{ item.1.service_state }}"
username: "{{ item.0.user }}"
password: "{{ item.0.pass }}"
service_group: "{{ item.1.group_name }}"
reset_on_server_selection_fail: yes
servers:
- name: "{{ item.1.server_name1 }}"
port: "{{ item.1.server_port1 }}"
overwrite: yes
write_config: yes
ignore_errors: yes
with_nested:
- "{{ a10 }}"
- "{{ service_group }}"
变量:
service_group:
- group_name: bif_sg
service_state: present
server_name1: bif01
server_port1: 80
我需要帮助来传递 server_name 和 server_port 的变量,假设我有 3 个服务器要添加到任务中的服务组,我需要添加 3 次 server_name 1, server_port1 个 server_name2个,server_port2个...... 每次我添加服务器时,我也需要更新任务:(
有没有办法在任务中使用单个定义值多次传递 sever_name 和 serer_port。
我希望 server_group 有一个 列表 服务器,重构你的变量以包含服务器列表而不是一堆单独的子键:
service_group:
- group_name: bif_sg
service_state: present
servers:
- name: bif01
port: 80
- name: bif02
port: 8080
在你的任务中:
...
servers: "{{ item.1.servers }}"
...