मैं एक NiFi परिनियोजन के लिए कॉन्फ़िगरेशन फ़ाइल को अपडेट करने का प्रयास कर रहा हूं, इनिटल परिनियोजन कॉन्फ़िगरेशन में नोड्स को शामिल करने की आवश्यकता है ताकि उनके बीच HTTPS कनेक्शन स्थापित हो सकें।

मेरे पास एक उत्तरदायी कार्य है जो कॉन्फ़िगरेशन फ़ाइलों में आवश्यक संरचनात्मक परिवर्तन करता है, लेकिन मुझे सही विवरण सम्मिलित नहीं हो रहा है।

- name: Add each host to the authorizers.xml
  lineinfile:
    path: /opt/nifi/conf/authorizers.xml
    line: "<property name=\"Node Identity {{ item }}\">CN={{ item }}, OU=NiFi</property>"
    insertafter: <!--accessPolicyProvider Node Identities-->
  loop: "{{ query('inventory_hostnames', 'nifi') }}"

यह मेजबानों के लिए आईपी पते रखता है, और मुझे इसके बजाय प्रत्येक नोड के लिए ansible_hostname प्राप्त करने की आवश्यकता है। मैंने ansible_play_batch और लूप के साथ खेला है: "{{groups['nifi'] }}" लेकिन मुझे परिणाम मिल रहा है, हर बार छोटे होस्टनाम के बजाय आईपी पते आउटपुट कर रहा है।

संक्षिप्त होस्टनाम कहीं भी मेरे उत्तरदायी कॉन्फ़िगरेशन में संग्रहीत नहीं हैं, वे (यदि मैं सही ढंग से समझता हूं) एकत्रित तथ्यों की प्रक्रिया के माध्यम से रन टाइम पर निर्धारित किया जाता है। मैं वास्तव में नोड नामों को सूची चर में नहीं रखना चाहता हूं।

1
Jontia 16 अक्टूबर 2020, 12:17

1 उत्तर

सबसे बढ़िया उत्तर

प्रश्न: "प्रत्येक नोड के लिए ansible_hostname प्राप्त करें"

ए: सूची को देखते हुए

shell> cat hosts
[nifi]
10.1.0.51
10.1.0.52

नीचे दी गई प्लेबुक

- hosts: nifi
  tasks:
    - debug:
        var: ansible_hostname

देता है (संक्षिप्त)

ok: [10.1.0.51] => 
  ansible_hostname: test_01
ok: [10.1.0.52] => 
  ansible_hostname: test_02

समूह में मेजबानों को पुनरावृत्त करना और मेजबानवारों से ansible_hostname प्राप्त करना संभव है। उदाहरण के लिए, प्रतिनिधि करने के लिए स्थानीय होस्ट और run_once

    - debug:
        msg: "{{ hostvars[item].ansible_hostname }}"
      loop: "{{ groups.nifi }}"
      delegate_to: localhost
      run_once: true

देता है

ok: [10.1.0.51 -> localhost] => (item=10.1.0.51) => 
  msg: test_01
ok: [10.1.0.51 -> localhost] => (item=10.1.0.52) => 
  msg: test_02
1
Vladimir Botka 16 अक्टूबर 2020, 12:47