Установить дополнительный параметр модуля ansible только в том случае, если определена переменная
У меня есть пользовательский модуль ansible.
10 def main():
11 module = AnsibleModule(
12 argument_spec = dict(
13 server = dict(required=True, type='str'),
14 max_offset = dict(required=False, default=0.100, type='float')
15 ),
16 supports_check_mode = False
17 )
18
19 # Write params into normal variables
20 max_offset = module.params['max_offset']
21 server = module.params.get('server')
Я хочу вызвать его с дополнительным параметром только в том случае, если переменная ntp.max_offset определена.
Я не знаю, как это сделать.
Поэтому я попробовал этот код:
- name: GROUP::TEST
ntptest: server="{{ hostvars[item][eth]['ipv4']['address'] }}"
parameter:
name: "max_offset"
value: ntp.max_offset
when: ntp.max_offset is defined
register: modules_output
with_items: "{{groups['ntp_servers']}}"
when: server is not defined
Но, к сожалению.
1 ответ:
Вы можете использовать
default(omit)(см. docs здесь) например:- name: GROUP::TEST ntptest: server: "{{ hostvars[item][eth]['ipv4']['address'] }}" max_offset: "{{ ntp.max_offset | default(omit) }}"Это приводит к тому, что значение не передается модулю, когда переменная не определена.
Comments