2016-04-27 15 views
1

Ich habe ein benutzerdefiniertes Ansible Modul.Setze zusätzlichen ansible Modul Parameter nur wenn Variable definiert ist

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') 

Ich mag es mit zusätzlichen Parametern nennen nur, wenn eine Variable ntp.max_offset definiert ist. Ich weiß nicht, wie das geht. Also habe ich versucht, diesen Code:

- 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  

Aber leider.

Antwort

5

können Sie verwenden default(omit) (siehe docs here) zB:

Dies bewirkt, dass der Wert nicht an das Modul gesendet werden, wenn die Variable nicht definiert ist.

Verwandte Themen