Я пытаюсь добавить условие при в мою ansible -плейбук. Однако я не могу понять точный синтаксис / метод, чтобы сделать это, потому что мои роли используют дополнительные параметры. Ниже упоминается моя книга воспроизведения
---
- name: Deploying application code
hosts: uat-aegis
roles:
- { role: roles/send_slack, slack_message_text: "*`Started : Deploying code for {{ module_name }} on {{ inventory_hostname }}`*"}
- { role: roles/application_code_backup, backup_directory_name: "NAME", repo_directory: "/path/to/repo" }
- { role: roles/application_copy_config, repo_directory: "/path/to/repo"}
- { role: roles/application_git_pull, repo_url: "git@code.git", repo_directory: "/path/to/repo", branch_name: "BRANCH_NAME"}
- { role: roles/application_pm2_restart, process_name: "NAME" }
- { role: roles/send_slack, slack_message_text: "*`=== Completed : Deploying code for {{ module_name }} on {{ inventory_hostname }} ===`*"}
Здесь мне нужно выполнить role / application_copy_config только тогда, когда определенное значение переменной истинно. Это значение переменной передается как --extra-vars при выполнении ansible -playbook от Jenkins (параметр логического значения в Execute Script). Я попытался использовать приведенный ниже фрагмент кода, но он не работает.
---
- name: Deploying application code
hosts: uat-aegis
roles:
- { role: roles/send_slack, slack_message_text: "*`Started : Deploying code for {{ module_name }} on {{ inventory_hostname }}`*"}
- { role: roles/application_code_backup, backup_directory_name: "NAME", repo_directory: "/path/to/repo" }
- { role: roles/application_copy_config
when: "copy_config=true", repo_directory: "/path/to/repo"}
- { role: roles/application_git_pull, repo_url: "git@code.git", repo_directory: "/path/to/repo", branch_name: "BRANCH_NAME"}
- { role: roles/application_pm2_restart, process_name: "NAME" }
- { role: roles/send_slack, slack_message_text: "*`=== Completed : Deploying code for {{ module_name }} on {{ inventory_hostname }} ===`*"}
ansible -playbook команда выглядит следующим образом
ansible-playbook plays/deploy_application/code.yml --extra-vars "module_name=$MODULE_NAME config_copy_path=$CURRENT_PATH/ env=$ENVIRONMENT copy_config=$COPY_CONFIG"
Пожалуйста, помогите мне использовать условие when в ansible -плейбук. Это необходимо, потому что мне нужно выполнять роль: role / application_copy_config, только когда значение переменной равно true. Я использовал эту ссылку для добавления условия в роли