結論から書くと、以下のように書ける。
when: > ('redhat-stable' in repo_url) or ('redhat-stable' in repo_key_url) or ('redhat-stable' in package_url)
ポイントは以下の通り。以下の説明は細かい検証はしていない or メモしていないので細かい部分で間違っているかもしれないです。
>
とか |
を使って複数行に書けるようになる
- YAMLの仕様らしい
- refs. https://stackoverflow.com/questions/53098493/how-to-nicely-split-on-multiple-lines-long-conditionals-with-or-on-ansible
上記のwhenの場合、条件をそれぞれカッコでくくる
そうしないとエラーになった。原因までは調べてない。
when内では変数はそのまま、文字列はクオートでくくる
repo_url
がansibleの変数(中身は文字列)の時、 'redhat-stable' in repo_url
は問題ないが、 redhat-stable in repo_url
はエラーになるということ。
Ansible難しいなと思ったところ
yamlファイル内に書くとき、「こう書きたい」と思った表現が書けるかどうか、以下の知識を持っていないと完全に判断が付けられないところ。
- Ansible固有の知識
- when節に書ける法則 etc.
- Jinja2の知識
- YAMLの仕様・知識