ansible создает строку из переменной, разделенной запятой

#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