web-dev-qa-db-ja.com

リスト変数をAnsibleの別のリストに追加する

ansibleの静的リストに変数リストを追加することは可能ですか?

リスト全体を変数として定義できます。

my_list:
  - 1
  - 2
  - 3

そして、プレイブックで次のように使用します

something: {{my_list}}

しかし、私はこれを行う方法を見つけることができないようです(擬似コード):

list_to_append: 
  - 3
  - 4

そして、プレイブックで:

something:
  - 1
  - 2
  - {{append: list_to_append}}

それが実際に不可能な場合、私のユースケースに対して何を提案しますか?

パラメーターに項目のリストがありますが、それらの一部はoptionalであり、変数を使用して変更可能にする必要があります。

つまり、default values + optional values変数を介して追加できる場合とできない場合。

optional valuesは事前に知られていないため、1、2、または100を追加できるため、静的ではありません。

基本的に、デフォルトの静的リスト++を追加する構成可能な変数リストがあります。

編集:私はこれを見つけましたが、それはwith_items専用であり、通常のパラメータで必要です:

  with_flattened:
   - "{{list1}}"
   - "{{list2}}"
24

コンテンツに本当に追加したい場合は、set_factモジュールを使用する必要があります。ただし、マージされたリストを使用するだけの場合は、次のように簡単です。

{{ list1 + list2 }}

set_factの場合、次のようになります。

- set_fact:
    list_merged: "{{ list1 + list2 }}"

注:連結リストで追加の操作を行う必要がある場合は、次のようにグループ化してください。

- set_fact:
    list_merged: "{{ (list1 + list2) | ... }}"
36
udondan

以下はAnsible 2.1.2.0で私のために働いた:

- name: Define list of mappings
  set_facts:
    something:
      - name: bla
        mode: 1

- name: Append list with additional mapping
  set_facts:
    something: "{{ something + [{'name': 'blabla', 'mode': 1}] }}"
3
mdh