В вашем коде переменная это словарь . Ключи в словаре должны быть уникальными.
vars:
name: "test1"
fqdn_name: "test1.test.domain.net"
health_check: "TCP-8080-HALFOPEN"
port_number: "80"
YAML устраняет дублирование ключей, просто переопределяя значение. Это выражение
vars: { name: "test3", fqdn_name: "test3.test.domain.net", port_number: "80", port_number: "8080" }
даст
"vars": {
"fqdn_name": "test3.test.domain.net",
"name": "test3",
"port_number": "8080"
}
В вашем коде port_list есть список . Это список словарей. Кажется, это правильный способ объявить несколько номеров портов.
port_list:
- port_number: "80"
- port_number: "8080"
В сериализованном формате
port_list: [{port_number: "80"}, {port_number: "8080"}]
Но в вашем коде роль: сервер это не такПонятно, как эти переменные используются в роли. Необходимо изучить роль, чтобы узнать, как отправить данные.
Например:
- role: server
vars:
name: "test1"
fqdn_name: "test1.test.domain.net"
health_check: "TCP-8080-HALFOPEN"
port_number1: "80"
port_number2: "8080"
--
- name: Test server create
a10_slb_server:
a10_host: "10.1.1.1"
a10_username: "admin"
a10_password: "admin"
a10_port: "443"
a10_protocol: "https"
state: present
name: "{{ name }}"
fqdn_name: "{{ fqdn_name }}"
port_list:
- port_number: "{{ port_number1 }}"
- port_number: "{{ port_number2 }}"