macos - मैक ओएस एक्स पर Ansible होस्ट फ़ाइल को कहाँ संग्रहीत करें




ansible-inventory (4)

मुझे बैश वातावरण चर का उपयोग करना पसंद है क्योंकि मेरी आधार परियोजना अन्य उपयोगकर्ताओं के साथ साझा की जाती है। आप बस export ANSIBLE_HOSTS=/pathTo/inventory/ कर सकते हैं export ANSIBLE_HOSTS=/pathTo/inventory/ यह एक होस्ट फ़ाइल या मल्टी फ़ाइलों वाली निर्देशिका हो सकती है।

आप इसे अपने ~ / .bash_profile में लिखने का भी उपयोग कर सकते हैं, ताकि इसके लगातार अन्य चर का एक गुच्छा अधिक जानकारी के लिए एक गोपनीय फ़ाइल को बनाए रखने के बजाय उस तरीके को सेट कर सकें जो स्रोत को ansible / lib / ansible / constants.py में जाँचें

मैं अपने Vagrantbox को प्रावधान करने के लिए Ansible के साथ आरंभ करने की कोशिश कर रहा हूं, लेकिन मैं यह पता नहीं लगा सकता कि मेजबान फ़ाइलों से कैसे निपटें।

प्रलेखन के अनुसार /etc/ansible/hosts में स्टोर होना चाहिए, लेकिन मुझे यह मेरे सिस्टम (Mac OS) पर नहीं मिल रहा है। मैंने उन उदाहरणों को भी देखा, जहां host.ini फ़ाइल से सटे दस्तावेज़ रूट में host.ini फ़ाइल स्थित है।

तो मेरा सवाल यह है कि आप एक सिंगल वेजिटेरियन बॉक्स स्थापित करने के लिए अपने होस्टाइल को कहां स्टोर करेंगे?


यदि आप वैग्रांट के सुस्पष्ट उपबंधक का उपयोग करते हैं, तो वैग्रंट स्वचालित रूप से एक ऐन्सिबल होस्ट्स फ़ाइल (जिसे vagrant_ansible_inventory_default कहा जाता है) उत्पन्न करेगा और उस फाइल का उपयोग करने के लिए vagrant_ansible_inventory_default -प्लेबुक कॉन्फ़िगर करेगा। यह इस तरह दिख रहा है:

# Generated by Vagrant

default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222

यह वैग्रैंट होस्ट को "डिफ़ॉल्ट" कहता है, इसलिए आपके नाटकों को "डिफ़ॉल्ट" या "सभी" का संदर्भ देना चाहिए।


यहाँ एक विवरण है कि मैक पर Ansible स्थापित करने के बाद क्या करना है, इसने मेरे लिए काम किया: ansible-tips-and-tricks.readthedocs.io

मैंने asible.cfg फ़ाइल को डाउनलोड किया है

/Users/"yourUser"/.ansible

और बाद में आप asible.cfg फ़ाइल को अनइंस्टॉल करके संपादित कर सकते हैं

inventory      = /Users/"yourUser"/.ansible 

ऊपर दिखाए गए फ़ोल्डर की तरह पथ को निर्दिष्ट और निर्दिष्ट करना। आप इस फ़ोल्डर में होस्ट फ़ाइल भी बना सकते हैं। इसे स्थानीय स्तर पर आज़माने के लिए, आप लगा सकते हैं

localhost              ansible_connection=local

मेजबानों फ़ाइल में और इसे बाहर की कोशिश करो

ansible -m ping all

हालांकि, डिसएबल डिफॉल्ट रूप से /etc/ansible/hosts को आज़माएगा, लेकिन ansible को बताने के लिए कई तरीके हैं जहाँ एक वैकल्पिक इन्वेंट्री फ़ाइल की तलाश करें:

  • -i कमांड लाइन स्विच का उपयोग करें और अपना इन्वेंट्री फ़ाइल पथ पास करें
  • अपने ~/.ansible.cfg फ़ाइल फ़ाइल के [defaults] अनुभाग में hostfile = path_to_hostfile जोड़ें
  • export ANSIBLE_HOSTS=path_to_hostfile उपयोग अपने उत्तर में DomaNitro द्वारा सुझाए गए अनुसार करें

अब आप इस बात का उल्लेख नहीं करते हैं कि क्या आप योनि में उपलब्ध सुस्पष्ट उपबंधक का उपयोग करना चाहते हैं, या यदि आप अपने योन यजमान को मैन्युअल रूप से प्रावधान करना चाहते हैं।

आइए सबसे पहले वैग्रांट अन्सिएबल प्रोविजनर के लिए जाएं:

एक निर्देशिका बनाएं (उदाहरण के लिए परीक्षण), और अंदर एक वैग्रेंट फ़ाइल बनाएं:

वैग्रांटफाइल :

Vagrant.configure("2") do |config|

  config.vm.box = "precise64-v1.2"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"

  config.vm.define :webapp do |webapp|
    webapp.vm.hostname = "webapp.local"
    webapp.vm.network :private_network, ip: "192.168.123.2"
    webapp.vm.provider "virtualbox" do |v|
      v.customize ["modifyvm", :id, "--memory", 200, "--name", "vagrant-docs", "--natdnshostresolver1", "on"]
    end
  end

  # 
  # Provisionning
  #
  config.vm.provision :ansible do |ansible|
    ansible.playbook = "provision.yml"
    ansible.inventory_path = "hosts"
    ansible.sudo = true
    #
    # Use anible.tags if you want to restrict what `vagrant provision`
    # Here is a list of possible tags
    # ansible.tags = "foo bar"
    #
    # Use ansible.verbose to see detailled output for ansible runs
    # ansible.verbose = 'vvv'
    #
    # Customize your stuff here
    ansible.extra_vars = { 
      some_var: 42,
      foo: "bar",
    }
  end
end

अब जब आप आवारागर्दी (या vagrant provision ) चलाते हैं, तो वैंगरेंट का अनसुना vagrant provision वैग्रांटफाइल के समान निर्देशिका में एक फ़ाइल नाम hosts तलाश करेगा, और provision.yml को लागू करने की कोशिश करेगा।

आप वैगरेंट के अनसुने प्रोविजनर का सहारा लिए बिना, इसे मैन्युअल रूप से भी चला सकते हैं:

ansible-playbook -i hosts provision.yml --ask-pass --sudo

ध्यान दें कि Vagrant + Virtualbox + Ansible तीनों हमेशा साथ नहीं मिलता है। कुछ संस्करण संयोजन हैं जो समस्याग्रस्त हैं। यदि आप समस्याओं (विशेष रूप से नेटवर्क के बारे में) का अनुभव करते हैं तो लेटैस्ट संस्करणों में अपग्रेड करने का प्रयास करें।

{shameless_plug} आप here योनि और ansible को मिलाने वाला एक अधिक व्यापक उदाहरण पा सकते हैं {/ shameless_plug}

सौभाग्य !





ansible-inventory