从变量逗号分隔的ansible创建字符串

时间:2020-10-07 12:53:51

标签: ansible

我有这个变量:

amq_ping_hosts:
  - "10.1.1.1"
  - "10.1.1.2"
  - "10.1.1.3"
  - "10.1.1.4"

并且我想用逗号分隔的字符串创建变量:

ping主机: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是一个未定义的变量

2 个答案:

答案 0 :(得分:3)

使用join。以下任务

    - 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

答案 1 :(得分:1)

您可以使用python中的join函数:

  tasks:
  - set_fact: 
      ping_hosts: "{{ ','.join(amq_ping_hosts) }}"

  - debug:
      var: ping_hosts