我有一个自定义的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')
Run Code Online (Sandbox Code Playgroud)
只有在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
Run Code Online (Sandbox Code Playgroud)
但不幸的是.
nit*_*one 13
您可以使用default(omit)(参见此处的文档),例如:
- name: GROUP::TEST
ntptest:
server: "{{ hostvars[item][eth]['ipv4']['address'] }}"
max_offset: "{{ ntp.max_offset | default(omit) }}"
Run Code Online (Sandbox Code Playgroud)
这导致在未定义变量时不将值发送到模块.
| 归档时间: |
|
| 查看次数: |
2183 次 |
| 最近记录: |