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
ます。最初のタスクで条件が有効でない場合、実行を中止する必要があります。
このケースを処理するための提案はありますか?