Я работаю над созданием роли ansible и в качестве первой задачи хочу убедиться, что все соответствующие обязательные параметры определены, а не пустые.
Количество обязательных параметров равно Dynami c и изменено. на основе конфигурации. например, если флаг равен true, то для него потребуются дополнительные обязательные параметры.
, чтобы решить параметры динамического c, я создаю файл шаблона mandatory_parameters.j2
, который содержит все соответствующие параметры
required_vars:
- release_pipeline_bb_url
- release_mail_to
- dummy
{% if release_pipeline_credential_enabled %}
- release_pipeline_credential.private_key
{% endif %}
{% if release_descriptor_credential_enabled %}
- release_descriptor_credential.UserName
- release_descriptor_credential.Password
{% endif %}
после этого я загружаю этот файл как vars
- name: Create mandatory validation file
template:
dest: "{{ jenkins_casc_folder }}/{{ role_name }}/mandatory.yaml"
src: mandatory_parameters.j2
- name: Load mandatory parameter file as variable
include_vars:
file: "{{ jenkins_casc_folder }}/{{ role_name }}/mandatory.yaml"
Я успешно проверил, определен ли обязательный параметр и не пуст ли для «обычных» переменных, но он не работает для словаря, как release_descriptor_credential.Password
- name: Validate all mandatory parameters
fail: msg="The variable '{{ item }}' is not defined or empty"
when: ( vars[item] is not defined) or ( vars[item] |length == 0)
loop: "{{ required_vars }}"
Как я могу проверить и для словаря типа?
Я пытался также через поиск, но безуспешно.