2017-09-30 11 views
1

私はVagrant + Ansibleをプロジェクトで使用しています。ユーザーがプロビジョニングに含まれる「ワークスペース」という役割を提供することをオプションにしたいと考えています。これは、存在しない役割が不可能な役割を無視することは可能ですか?

ERRORと全部がクラッシュし、脚本に指定されている場合、ユーザーがなど

を自分の有利なプロンプト、エディタを設定することができます!役割「ワークスペース」が見つかりませんでした...

私は単にそれを無視して移動したいと思います。私はfailed_when: falseを追加しようとしましたが、意外にも効果がありませんでした。役割が存在するかどうかを確認できる条件を策定することは可能ですか?または、これをうまく解決する別の方法がありますか?

答えて

0

Conditionalsの資料を見ると、役割が存在するかどうかを直接確認することはできません。

役割のディレクトリが存在するかどうかを確認するには、ロールの検索が現在のプラットフォーム、環境または構成に基づいている複数の場所があるため、少し難しいでしょう。

私はちょっとしたアプローチを試してみました:あらかじめ定義された役割名を主張するのではなく、責任ある変数を使って役割名を求めることができます。次に、この役割をこのように含めることができます。

- name: Minimal playbook example 
    hosts: localhost 
    connection: local 
    vars: 
    role_name: "" 
    roles: 
    - role: "{{ role_name }}" 
     when: role_name != "" 

ユーザーが独自の役割名を指定しない場合、この役割は含まれません。これが機能するためには、ロール名変数のデフォルト値を指定する必要があります。そうしないと、未定義変数で失敗する可能性があります(is definedのwhen節のチェックには役立たない)。

関連する問題