0

include渡されたパラメータに基づいて動的にファイルしようとしていますansible-playbook。パラメータを検証するために、when状態でチェックしていますが、うまくいかないと思います。最初にインクルード ファイルをチェックします。

playbook.yml:-

---
- hosts: local
  user: roop
  gather_facts: no

  vars: {action: "",validAction: ["action1","action2","action3","action4"]}

  tasks:

    - name: validate action
      fail: msg="please make sure you pass valid action"
      when: action == "" or action not in validAction

    - include: "action/{{ action }}.yml"
      when: action !="" and action in validAction

次の 2 つのケースがあります。

1) パラメータでアクションを渡さない場合

ansible-playbook playbook.yml 

エラー:

ERROR: file not found: /path/to/action/.yml

期待される出力:

Should be execute task 1 "Validate action" first.

2) 行動が間違っている場合

ansible-playbook playbook.yml -e "action=action5"

エラー:

ERROR: file not found: /path/to/action/action5.yml

期待される出力:

ユーザーが有効なアクションではないアクションを渡すと、 task1 にチェックインする必要がありentity not in validEntityます。最初のタスクで条件が有効でない場合、実行を中止する必要があります。

このケースを処理するための提案はありますか?

4

1 に答える 1