2017-06-21 4 views
0

私は、(DRYの理由で)不可解なプレイブックで設定したいいくつかの変数があります。これらの変数のそれぞれは、以前の変数に依存しています。以下の2つの変数を持つ単純な例ですが、私の実際の状況によりがあります。複数の変数で従属変数をコンパイラーで定義するコンパクトな方法はありますか?

- set_fact: 
    current_user: "{{ lookup('env', 'USER') }}" 

- set_fact: 
    repository_root: /home/{{ current_user }}/code/devops 

、各変数のset_fact:行を繰り返すように少し冗長です。

- set_fact: 
    current_user: "{{ lookup('env', 'USER') }}" 
    repository_root: /home/{{ current_user }}/code/devops 

current_userrepository_rootの式が評価され、それが失敗した時に定義されていません。残念ながら、私は次のようにそれらをマージする場合。

プレイブック内の以前の変数に依存する多くの変数を表現するためのより簡潔な方法はありますか?

答えて

1

この場合、set_factが必要ですか?

あなたは、在庫や遊びVARSでこの変数を定義することができます。

current_user: "{{ lookup('env', 'USER') }}" 
repository_root: /home/{{ current_user }}/code/devops 

(必要な場合、及びチェーン)彼らが使用した場合にのみ評価されます。

+0

私はそれらをプレイ変数に入れることを考えていませんでした。これは良い考えかもしれません。 – BlackVegetable

+0

これは実際に私の使用パターンで機能します。必要に応じて評価したり、チョークするだけであれば、定義された順序とは異なる順序で使用されたのだろうかと思います。しかたがない。それは別の質問に属します。ありがとうございました。 – BlackVegetable

関連する問題