を実行しなかった場合、私のようなものが含まれtasks.yml
あります中止前のタスクのいずれも
- name: something on Debian wheezy
when: ansible_distribution == 'Debian' and ansible_distribution_version == '7'
- name: something on Debian jessie
when: ansible_distribution == 'Debian' and ansible_distribution_version == '8'
- name: something on Ubuntu
when: ansible_distribution == 'Ubuntu'
私はこれらのタスクのどれもが実行されなかった場合は脚本を中止したタスク(または何か)を追加したいが。
多分、「何か」がパッケージをインストールしているかもしれません。そして、後に続くいくつかのタスクは、その新しくインストールされたパッケージを構成することです。私がRedHatシステム上でプレイブックを実行すると、そのパッケージはインストールされず、それを設定するタスクを実行する前に中止したいと思います。
私はのような何かを行うことができると思います:
- fail: msg="abort!"
when: not (ansible_distribution == 'Debian' and ansible_distribution_version == '7') and not (ansible_distribution == 'Debian' and ansible_distribution_version == '8') and not ansible_distribution == 'Ubuntu'
を...しかし、それは迷惑なんです。もっと良い解決策はありますか?
これは優れたプレーブックデザインですか?私は、OSがサポートされていない場合、プレイブックの実行の始めに失敗することを好むでしょう、または、不必要なタスクをスキップするだけで問題がなければ。 –
それは初期に失敗するほうが良いかもしれませんが、それは2つの非常に離れた場所でサポートされているOSをチェックすることを意味します。私はむしろそこで失敗し、これが特定のOSがサポートされていない理由であることを知ってから、そのOSに '何か 'をインストールするコードを追加して、それを1日と呼びます。 – Gohu