Ansible समूह चर अपरिभाषित में खेलते हैं

0

सवाल

मैं लागू किया है एक गतिशील सूची के लिए Ansible, इसके निष्पादन के दौरान यह परिभाषित करता है एक समूह चर है कि मैं का उपयोग कर रहा हूँ बाद में एक playbook.

में playbook, मैं उपयोग कर रहा हूँ यह दो बार:

  • के लिए पाशन पर इसकी सामग्री:
    tasks:
       - include_tasks: include/restart.yaml
         loop: "{{ host_set | default(['all']) }}"
         loop_control:
           loop_var: h
    
  • और एक साधन के रूप में स्थापित करने के लिए सीरियल सशर्त
    serial: "{{ host_set | default(false) | ternary('100%', '5') }}"
    

व्यवहार मैं मिलता है कि मैं नहीं कर सकता समझाने की है कि host_set चर परिभाषित किया गया है और आबादी के दौरान सही ढंग से कार्य निष्पादन, लेकिन कोशिश कर रहा है जब सेट करने के लिए serial ऐसा लगता है होना करने के लिए अपरिभाषित.

इस व्यवहार की उम्मीद कर रहे हैं, Ansible समूह चर अपरिभाषित स्थापित करने के लिए जब एक खेल की विशेषताओं, लेकिन पॉप बाद में जब कार्य निष्पादन के लिए है कि विशेष रूप से खेल शुरू होता है?

ansible
2021-11-23 21:48:17
2

सबसे अच्छा जवाब

3

समूह चर केवल लागू करने के लिए अलग-अलग मेजबान. नाटकों मूल्यांकन कर रहे हैं में एक गैर-होस्ट संदर्भ है, तो केवल चर है कि उपलब्ध हैं कर रहे हैं गैर-होस्ट-विशिष्ट चर की तरह, उन लोगों से --extra-vars.

2021-11-24 01:32:48
1

जब के कारण यह व्यवहार है पूरी तरह से अच्छी तरह से कहा गया है से @flowerysong के जवाब, वहाँ एक वैकल्पिक समाधान है, आप का उपयोग कर सकते हैं प्राप्त करने के लिए अपने की आवश्यकता ।

चाल उपयोग कर रहा है तथ्य यह है कि आप को परिभाषित कर सकते हैं दो नाटकों एक playbook और, फिर, का उपयोग चर सेट पर host(s) के लिए पहली बार खेलने.

तो, हम क्या करने जा रहे हैं क्या है:

  1. रन पर एक नाटक localhost और एक तथ्य से आ रही मेजबान समूह है कि हम लक्ष्य को लक्षित करने के लिए दूसरे में खेलते हैं
  2. वैकल्पिक रूप से: मैं भी परिभाषित एक target_hosts चर में पहली बार खेलने के लिए, सुनिश्चित करें कि, अगर दूसरा खेल के लक्ष्य को संशोधित किया गया है, मेजबान समूह चर हमेशा होता है कि एक दूसरे को खेलने के लिए जा रहा है लक्ष्य.
  3. कि चर का उपयोग करें, दूसरे में खेलते हैं, से localhost's hostvars

अतिरिक्त ध्यान दें: वहाँ के लिए कोई लेखा है स्वाद, लेकिन मैं पसंद करते हैं इनलाइन अगर करने के लिए ternary फिल्टर, अभी भी कर रहे हैं, वे सख्ती से बराबर की ।


तो, playbook:

- hosts: localhost
  gather_facts: no

  tasks:
    - set_fact:
        target_hosts: nodes
        
    - set_fact:
        host_set: "{{ hostvars[groups[target_hosts].0].host_set }}"

- hosts: "{{ hostvars.localhost.target_hosts }}"
  gather_facts: no
  serial: "{{ '100%' if hostvars.localhost.host_set else '1' }}"
  
  tasks:
    - debug: 
  • जब चलाने के लिए के साथ host_set: true में nodesसमूह:
    PLAY [localhost] *******************************************************************************************************************
    
    TASK [set_fact] ********************************************************************************************************************
    ok: [localhost]
    
    TASK [set_fact] ********************************************************************************************************************
    ok: [localhost]
    
    PLAY [nodes] ***********************************************************************************************************************
    
    TASK [debug] ***********************************************************************************************************************
    ok: [node1] => 
      msg: Hello world!
    ok: [node2] => 
      msg: Hello world!
    ok: [node3] => 
      msg: Hello world!
    
    PLAY RECAP *************************************************************************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    node1                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    node2                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    node3                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    
  • जब चलाने के लिए के साथ host_set: false में nodesसमूह:
    PLAY [localhost] *******************************************************************************************************************
    
    TASK [set_fact] ********************************************************************************************************************
    ok: [localhost]
    
    TASK [set_fact] ********************************************************************************************************************
    ok: [localhost]
    
    PLAY [nodes] ***********************************************************************************************************************
    
    TASK [debug] ***********************************************************************************************************************
    ok: [node1] => 
      msg: Hello world!
    
    PLAY [nodes] ***********************************************************************************************************************
    
    TASK [debug] ***********************************************************************************************************************
    ok: [node2] => 
      msg: Hello world!
    
    PLAY [nodes] ***********************************************************************************************************************
    
    TASK [debug] ***********************************************************************************************************************
    ok: [node3] => 
      msg: Hello world!
    
    PLAY RECAP *************************************************************************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    node1                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    node2                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    node3                      : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    
2021-11-24 11:14:59

धन्यवाद आप के लिए अतिरिक्त जानकारी!
Radu Stoenescu

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................