कार्य नाम में Ansible इन्वेंट्री_होस्टनेम या ansible_hostname का उपयोग करें


19

मैं एक रोलिंग अपग्रेड प्लेबुक लिख रहा हूं और मौजूदा होस्ट के होस्टनाम को अपग्रेड करना चाहता हूं।

मैंने टास्क नामों में दिए inventory_hostnameऔर ansible_hostnameकाम नहीं किए

- name: upgrade softare on {{inventory_hostname}}
- name: current host is {{ansible_hostname}}

डिबग ठीक काम करता है

- name: Test a variable
  debug: var=inventory_hostname

TASK: [Test a variable] ******************************************************* 
ok: [SERV14] => {
    "var": {
        "inventory_hostname": "SERV14"
    }
}

तो मुझे कार्य नाम विवरण में उन चर का उपयोग करने में सक्षम होने के लिए क्या करना चाहिए।

धन्यवाद


4
वर्तमान में, चर प्रतिस्थापन नाम में नहीं किया जा सकता है। यहां
cuonglm

जवाबों:


27

V2.0 से शुरू करना कार्य / हैंडलर नामों में परिवर्तनीय प्रतिस्थापन का समर्थन करता है: https://github.com/ansible/ansible/issues/10347 , इसलिए ये उदाहरण अपेक्षित रूप से काम करेंगे:

- name: upgrade software on {{inventory_hostname}}
- name: current host is {{ansible_hostname}}

0

मुझे लगता है कि आपको इसके {{ ansible_hostname }}बाद लिखना चाहिए tasks:, क्योंकि इससे पहले यह अभी तक तथ्यों को इकट्ठा नहीं किया है, इसलिए यह परिणाम नहीं दे सकता है। मैं अवधारणा पर गलत हो सकता हूं लेकिन व्यवहार में यह सफल रहा।

tasks:
  - name: Install the httpd on {{ ansible_hostname }}
    yum: 
      name: httpd 
      state: latest

प्लेबुक

आउटपुट खेलते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.