在Ansible中组合字符串列表

问题描述 投票:0回答:1

我在Ansible中有两个字符串列表:

vars:
  pre:
    - one
    - two
  post:
    - alpha
    - beta

我可以轻松地获得这些列表的笛卡尔积:

set_fact: prods="{{pre|product(post)|list}}"

然后,我如何组合各个部分以获得这样的列表:

prods:
  - one-alpha
  - one-beta
  - two-alpha
  - two-beta
ansible
1个回答
0
投票

循环!

---
- hosts: localhost
  gather_facts: false

  vars:
    pre:
      - one
      - two
    post:
      - alpha
      - beta

  tasks:
    - set_fact:
        prods: "{{ prods|default([]) + ['{}-{}'.format(item.0, item.1)] }}"
      loop: "{{ pre|product(post)|list }}"

    - debug:
        var: prods

这将产生输出:

TASK [debug] **********************************************************************************
ok: [localhost] => {
    "prods": [
        "one-alpha", 
        "one-beta", 
        "two-alpha", 
        "two-beta"
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.