#ansible
#ansible
Вопрос:
У меня есть эта переменная:
amq_ping_hosts:
- "10.1.1.1"
- "10.1.1.2"
- "10.1.1.3"
- "10.1.1.4"
и я хочу создать переменную со строкой, разделенной запятыми:
ping_hosts: 10.1.1.1,10.1.1.2,10.1.1.3.10.1.1.4
Я пробовал это:
- name: "set fact ping_hosts"
set_fact:
ping_hosts: "{{ ping_hosts }} ',' {{ item }}"
loop: "{{ amq_ping_hosts }}"
но ping_hosts — это неопределенная переменная
Комментарии:
1.
ping_hosts: "{{ ping_hosts | default('') }} ',' {{ item }}"
2. На первой итерации возникла проблема с запятой. ping_hosts: ‘,10.1.1.1,10.1.1.2,10.1.1.3,10.1.1.4’
Ответ №1:
Используйте соединение. Задачи, приведенные ниже
- set_fact:
ping_hosts: "{{ amq_ping_hosts|join(',') }}"
- debug:
var: ping_hosts
дайте
ping_hosts: 10.1.1.1,10.1.1.2,10.1.1.3,10.1.1.4
Ответ №2:
вы можете использовать join
функцию из python:
tasks:
- set_fact:
ping_hosts: "{{ ','.join(amq_ping_hosts) }}"
- debug:
var: ping_hosts