提供されたバージョンがサポートされている有効なバージョンかどうかを確認しようとしています。許容可能なバージョンのリストを変数に設定しましたが、提供されたバージョンがリストにない場合はタスクから失敗します。しかし、私はそれを行う方法がわかりません。
#/role/vars/main.yml
---
acceptable_versions: [2, 3, 4]
そして
#/role/tasks/main.yml
---
- fail:
msg: "unsupported version"
with_items: "{{acceptable_versions}}"
when: "{{item}} != {{version}}"
- name: continue with rest of tasks...
上記は私がやりたいことの一種ですが、失敗モジュールの「リストを含む」呼び出しを作成するための1行の方法があるかどうかはわかりませんでした。
いらないよ {{}}
in条件。あなたが探しているのは:
- fail: msg="unsupported version"
when: version not in acceptable_versions
Ansibleには、1.6以降の_version_compare
_フィルターがあります。 when
条件で以下のようなことができます:
when: ansible_distribution_version | version_compare('12.04', '>=')
これにより、メジャーバージョンとマイナーバージョンの比較がサポートされ、次のような演算子を使用してバージョンを比較できます。
_<, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne
_
詳細については、こちらをご覧ください。 Ansible-バージョン比較フィルター
それ以外の場合、本当に簡単な場合は、@ ProfHase85が提案したものを使用できます。