मैक ओएस एक्स पर "/ etc / ansible /" में कॉन्फ़िगर फ़ाइल नहीं मिल रही है


15

मैं Mac OS X पर हूं और Ansible के लिए नया हूं । मैं भूल गया कि मैंने इसे कैसे स्थापित किया। मुझे लगता है के माध्यम से pip:

$ pip freeze
altgraph==0.12
ansible==1.9.2

किसी भी दर पर, मैं जो भी पढ़ रहा हूं, उसमें एक कॉन्फ़िगर फ़ाइल होनी चाहिए /etc/ansible/, लेकिन उस निर्देशिका की सामग्री बस है:

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles

ऐसा नहीं लगता है कि पर्यावरण चर को परिभाषित किया गया है:

$ echo $ANSIBLE_CONFIG
# blank line

जब तक मैं बता सकता हूं (बिना स्थानीय के ansible.cfg, और ansibleउपयोगकर्ता के फ़ोल्डर में फ़ोल्डर में कुछ भी नहीं है ), तब तक काम करने योग्य है, लेकिन मैं भ्रमित हूं।

क्या कोई मुझे समझा सकता है कि मैं यहाँ क्या नहीं कर रहा हूँ?

जवाबों:


14

मैं जो भी जानता हूं, वह एंसेबल कॉन्फिगरेशन फाइल ( ansible.cfg) यूजर-लेवल कॉन्फ़िगरेशन सेटिंग्स के लिए यहां स्थित हो सकती है:

~/.ansible.cfg

साथ ही यहां स्थित सिस्टम-वाइड कॉन्फ़िगरेशन; जहाँ आप कहते हैं कि आपको ऐसी कोई फ़ाइल नहीं मिल सकती है:

 /etc/ansible/ansible.cfg

यदि किसी तरह आपके सिस्टम पर कई उपयोगकर्ता हैं, तो शायद आपके ~/.ansible.cfgउपयोगकर्ता निर्देशिकाओं में से एक में कोई फ्लोटिंग है जिसे आप भूल गए हैं?

आप कहते हैं कि आपने इसका उपयोग कर स्थापित किया होगा pip, लेकिन एंबिबल के लिए होमब्रेव फार्मूले की जाँच करना , यह केवल हाल ही में 4 सितंबर को संस्करण 1.9.2 से 1.9.3 तक टकराया गया था । तो शायद आपने इसे Homebrew के माध्यम से स्थापित किया है?

और आपकी मुख्य चिंता यह है कि क्या ansible.cfgआवश्यक है:

जब तक मैं बता सकता हूं (बिना स्थानीय के ansible.cfg, और ansibleउपयोगकर्ता के फ़ोल्डर में फ़ोल्डर में कुछ भी नहीं है ), तब तक काम करने योग्य है, लेकिन मैं भ्रमित हूं।

क्या कोई मुझे समझा सकता है कि मैं यहाँ क्या नहीं कर रहा हूँ?

हाँ, यह एक विन्यास के बिना ठीक काम करना चाहिए। सॉफ्टवेयर के अधिकांश टुकड़ों के लिए सभी कॉन्फिग फाइल कोर सिस्टम डिफॉल्ट को ओवरराइड करती है। तो अगर ansible.cfgलापता है, तो अभी भी काम करेगा, लेकिन केवल कोर सिस्टम चूक का उपयोग किया जाएगा। जैसा कि Ansible के आधिकारिक दस्तावेज में बताया गया है :

Ansible में कुछ सेटिंग्स एक कॉन्फ़िगरेशन फ़ाइल के माध्यम से समायोज्य हैं। स्टॉक कॉन्फ़िगरेशन अधिकांश उपयोगकर्ताओं के लिए पर्याप्त होना चाहिए, लेकिन ऐसे कारण हो सकते हैं जिन्हें आप उन्हें बदलना चाहते हैं।

परिवर्तन एक विन्यास फाइल में बनाया और उपयोग किया जा सकता है जिसे निम्नलिखित क्रम में संसाधित किया जाएगा:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

किसी भी स्थान पर नहीं। और मैं केवल उपयोगकर्ता हूँ। मुझे लगता है कि मैं इसे git रेपो से कॉपी कर सकता हूं और इसे उन निर्देशिकाओं में से एक में रख सकता हूं।
मिकीएलएल

अच्छा निर्णय। यह होमब्रे के माध्यम से स्थापित नहीं किया गया था, लेकिन यह संस्करण 1.9.2 था। इस समय पाइप के माध्यम से पुनः स्थापित ...
मिकीएलएल

अब 1.9.3 पर है, लेकिन अभी भी उपरोक्त स्थानों में से एक भी नहीं है। वहाँ ~/.ansible/cpऔर /etc/ansible/एक ही सामग्री के साथ है।
मिकीएलएल

धन्यवाद। समझ में आता है। अगर स्टॉक कॉन्फ़िगरेशन को आमतौर पर संदर्भित ansible.cfgफ़ाइलों में से एक में संग्रहीत किया गया था, तो मुझे यकीन नहीं था ।
मिकीएलएल

1
@ मायिकएलएल न, इसके बारे में चिंता न करें। मेरा अंतिम संपादन तब हुआ जब मैंने अंत में आपकी चिंताओं को समझा। मैं ईमानदारी से एक अच्छी तरह से ज्ञात सॉफ़्टवेयर के बारे में नहीं सोच सकता हूं जो "मेरे पास मुख्य चूक है, के तर्क से संचालित नहीं होता है, लेकिन अगर मुझे एक उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल मिलती है जो डिफ़ॉल्ट को ओवरराइड कर देगी।" जब आपका पूरा सिस्टम बाहरी कॉन्फिगर फाइल पर निर्भर होता है तो आपको जो बड़ा सिक्योरिटी / स्टेबिलिटी रिस्क मिलता है, अगर वह फाइल चली जाती है, तो पूरा सिस्टम ध्वस्त हो जाता है? अच्छी योजना नहीं। खुश अब आप समझ गए हैं कि अगर कॉन्फिग फाइल गुम हो जाती है, तो कुछ भी बुरा नहीं होता है।
जेकलॉल्ड

13

homebrewसूत्र स्ट्रिंग की जगह /etc/ansibleमें constants.pyसाथ /usr/local/etc/ansible। मुझे बुरा जीजू लगता है।

मैं नहीं था /usr/local/etc/ansibleके बाद brew install ansible। हालाँकि, मैंने इस बात की पुष्टि की कि यदि आप ansible.cfgवहाँ एक वैध रखते हैं, तो इसे सम्मानित किया जाएगा (अभी के लिए)।

मेरी सिफारिशें:

  1. brewस्थापित करने के लिए उपयोग न करें Ansible
  2. अपने कॉन्फिगरेशन के बारे में स्पष्ट रहें जो सिस्टम एनवायरनमेंट ग्लोबल्स पर निर्भर नहीं करता है, जैसे कि /etc/ansible/ansible.cfg

कोड

शराब बनाने का फार्मूला फॉर्मूला रिप्लेसमेंट # 475: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py # 61: https://github.com/ansible/ansible/blob/v1.9.3-1//ibib/ansible/constants.py#L61


होमब्रेव यूजर स्पेस में काम करते हैं, इसलिए एर्थिंग / लोकल / लोकल है। यह ठीक है।
गागरिन

3

OSX पर, मैंने पाइप का उपयोग करके ansible को स्थापित किया था और पाया कि ansible.cfg / etc / ansible या मेरे होम डायरेक्टरी में मौजूद नहीं है।

स्रोत: https://github.com/ansible/ansible/issues/18512

पाइप आमतौर पर कॉन्फ़िगरेशन फ़ाइलों को स्थापित नहीं करता है और ansible के साथ पाइप अलग नहीं है। यदि आप केवल ansible को आज़माना चाहते हैं, तो यह आम तौर पर ansible.cfg फ़ाइल के बिना काम करता है। (आपको कुछ इन्वेंट्री निर्दिष्ट करने की आवश्यकता है लेकिन आप चाहें तो एक फ़ाइल के बजाय कमांड लाइन पर ऐसा कर सकते हैं)। यदि आप अनुकूलित करने के लिए एक नमूना कॉन्फ़िगर फ़ाइल प्राप्त करना चाहते हैं, तो आप इसे टारबॉल या स्रोत भंडार से प्राप्त कर सकते हैं: https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg

इन्वेंटरी फाइलें यहां बताई गई हैं: http://docs.ansible.com/ansible/intro_inventory.html कमांड लाइन पर इन्वेंट्री के लिए मेजबानों को निर्दिष्ट करने के बजाय बस कुछ ऐसा करें:

ansible -i 'host1,host2,host3'  all -m command -a 'hostname'

यदि आप कमांड लाइन के माध्यम से एकल होस्ट निर्दिष्ट करना चाहते हैं, तो इन्वेंट्री स्ट्रिंग में एक अनुगामी अल्पविराम का उपयोग करें:

ansible -i 'host1,' all -m command -a 'hostname'

2

मैंने पाया है कि Homebrew एक /etc/ansibleडायरेक्टरी नहीं बनाएगा , न ही यह एक कॉन्फिगर या होस्ट फ़ाइल बनाएगा। हालाँकि, यदि आप /etc/ansibleनिर्देशिका बनाते हैं और निर्देशिका में github रिपॉजिटरी से कॉन्फ़िगरेशन को कॉपी करते हैं, /etc/ansibleतो यह मान जाएगा कि एक कॉन्फ़िगरेशन के रूप में।

आप उस कॉन्फिगरेशन में भी जाना चाहते हैं और उस लाइन को अनइंस्टॉल कर सकते हैं जो इन्वेंट्री लोकेशन को निर्दिष्ट करती है:

इन्वेंट्री = / etc / ansible / होस्ट

ऐसा करने पर, ansible होमब्रेव इंस्टाल के साथ उसी तरह का प्रदर्शन करेगा जैसा कि वह किसी अन्य इंस्टॉल से करता है और आपके द्वारा ऑनलाइन पाया गया डॉक्यूमेंट होमब्रेव वर्जन के साथ उपयोग किया जा सकता है।


/ usr / स्थानीय / आदि / मान्यता प्राप्त नहीं था। / Etc / ansible / निर्देशिका बनाने की कोशिश की और मेजबान और ansible.cfg चले गए ठीक काम किया!
anelkz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.