gpt4 book ai didi

ansible - 仅在定义变量时设置附加的 ansible 模块参数

转载 作者:行者123 更新时间:2023-12-03 15:26:52 24 4
gpt4 key购买 nike

我有一个自定义的 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

但不幸的是。

最佳答案

您可以使用 default(omit) (见 "Making variables optional" )例如:

- name: GROUP::TEST
ntptest:
server: "{{ hostvars[item][eth]['ipv4']['address'] }}"
max_offset: "{{ ntp.max_offset | default(omit) }}"
当变量未定义时,这会导致值不会发送到模块。

关于ansible - 仅在定义变量时设置附加的 ansible 模块参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36885689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com