0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ansibleでyamlのアンカーを利用し、重複表現を短縮する。

Posted at

目的

  • アンカーを利用し重複表現を減らす。
  • 実装方法に若干癖があったので個人的にメモする。

具体的なコード

  • 良くないケース
# hoge = 1
# fuga = 1

- name: hoge1
  debug:
    msg: "hoge1"
  when: hoge == fuga

- name: hoge2
  debug:
    msg: "hoge2"
  when: hoge == fuga

# ※ whenは変数展開に"{{}}"を使用しない、使用した場合は全部文字列になる。

  • 改善版
# hoge = 1
# fuga = 1

# no_log: trueでアンカーを定義しつつplaybook実行時のlogを汚さない。
- debug:
  vars:
    - &anchor_hoge
      when: hoge == fuga
  no_log: true

- name: hoge1
  debug:
    msg: "hoge1"
  <<: *anchor_hoge

- name: hoge2
  debug:
    msg: "hoge2"
  <<: *anchor_hoge

おまけ

  • モジュール: 値 (when: hoge)をアンカーに定義するのではなく値のみ(hoge)をアンカー定義し呼び出す方法。
  • <<の記述がいらない。
  • (こちら間違ってたらすいません)
- debug:
  vars:
    - &anchor_hoge
      hoge: true
  no_log: true

- name: hoge
  debug:
    msg: "hoge"
  when: *anchor_hoge

補足

  • 今回は概要程度なので大した重複ではなくメリットをそこまで感じにくいかもしれないが、

    whenだけでなくwith_itemsなども同時に利用されるケースではセットで

    アンカーに処理を突っ込めるので良いと思った。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?