プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

Ansibleのwhen節で複数行に複数の条件を書くやり方に迷ったので調べた

結論から書くと、以下のように書ける。

when: >
  ('redhat-stable' in repo_url) or
  ('redhat-stable' in repo_key_url) or
  ('redhat-stable' in package_url)

ポイントは以下の通り。以下の説明は細かい検証はしていない or メモしていないので細かい部分で間違っているかもしれないです。

> とか | を使って複数行に書けるようになる

上記のwhenの場合、条件をそれぞれカッコでくくる

そうしないとエラーになった。原因までは調べてない。

when内では変数はそのまま、文字列はクオートでくくる

repo_url がansibleの変数(中身は文字列)の時、 'redhat-stable' in repo_url は問題ないが、 redhat-stable in repo_url はエラーになるということ。

Ansible難しいなと思ったところ

yamlファイル内に書くとき、「こう書きたい」と思った表現が書けるかどうか、以下の知識を持っていないと完全に判断が付けられないところ。

  • Ansible固有の知識
    • when節に書ける法則 etc.
  • Jinja2の知識
  • YAMLの仕様・知識