2016-05-15 11 views
6

साथ ./library में मॉड्यूल के लिए नहीं देख ansible प्रलेखन intro_configuration में यह कहा जाता है कि:Ansible प्लेबुक

Ansible ... यह भी मॉड्यूल के लिए "./library" निर्देशिका में साथ-साथ दिखेंगे एक प्लेबुक

इम मेरे मामले एक ही तरीका है मुझे लगता है कि यह निर्देश gaqzi.ssh-config द्वारा प्रदान ansible द्वारा देखा गया था प्राप्त स्पष्ट रूप से एक पूर्ण पथ के साथ ANSIBLE_LIBRARY निर्यात करने के लिए गया था, (

कि gaqzi.ssh-config मॉड्यूल के बिना

ansible से नहीं मिला है के बारे में, प्रलेखन यह होना चाहिए।

यहाँ मैं बनाने के लिए क्या करना है यह काम ::

$ cd playbook # my folder were the plabooks are 
$ ansible-galaxy install -p library gaqzi.ssh-config # I get a lib 
$ export ANSIBLE_LIBRARY=/home/me/full/path/to/the/above/playbook/library 
$ # the export above is annoying 

मैं कैसे dynamicaly स्थानों की जांच कर सकते Ansible फिर से है सहयोगी 'लाइब्रेरी' की तलाश में है?

PS1: मैं ansible 2.0 और आवारा 1.8.1 :: उपयोग कर रहा हूँ

$ vagrant --version 
Vagrant 1.8.1 
$ ansible --version 
ansible 2.0.0.2 
config file = /etc/ansible/ansible.cfg 
$ 

पीएस 2: मैं में ubuntu से एक प्रदान अपवादित सभी ansible.cfg/.ansible.cfg फ़ाइलें निकालने के लिए ख्याल रखा /etc/ansible/ansible.cfg

+0

क्या होगा यदि आप मॉड्यूल को अपनी भूमिका पथ में संग्रहीत करते हैं? (यानी 'roles_path') – chilladx

+0

मैं वास्तव में प्रलेखन में सुधार करने में मदद करना चाहता हूं, इसलिए मुझे यह सुनिश्चित करने की ज़रूरत है कि उत्तरदायी उपयोगी बग रिपोर्ट प्रदान करने के लिए उत्तरदायी नहीं है। – user3313834

+0

कुछ समय पहले Ansible 2.0.0.2 के साथ प्रयोग करते समय मुझे वही मिला। यदि आप सिर्फ एक समाधान की तलाश में हैं, तो मेरा मॉड्यूल को भूमिका के अंदर रखना था। उत्तर आपकी भूमिका फ़ोल्डर्स में किसी भी भूमिका के अंदर मॉड्यूल और प्लगइन्स की तलाश करेगा, उदा। 'भूमिकाएं/foo/पुस्तकालय' – udondan

उत्तर

6

उत्तर वास्तव में current_playbook/library निर्देशिका में खोज करते हैं।

आप नीचे दिए गए सेटअप के साथ इस परीक्षण कर सकते हैं:

  1. प्लेस इस custom_module.pylibrary में subdir:

    --- 
    - hosts: localhost 
        tasks: 
        - name: custom module 
         custom_module: 
    
  2. निष्पादित करें:

    #!/usr/bin/python 
    import json 
    print json.dumps({"hello" : "world"}) 
    
  3. निम्नलिखित test.yml प्लेबुक बनाओ ansible-playbook -vv test.yml

ansible-galaxy साथ

आप भूमिका, नहीं मॉड्यूल स्थापित करें।
पैरामीटर -pansible-galaxyROLE_PATH को परिभाषित करता है।

आप gaqzi.ssh-config भूमिका से सिर्फ एक मॉड्यूल ssh_config चाहते हैं,
आप current_playbook/library में current_playbook/library/gaqzi.ssh-config/library से ssh_config.py कॉपी करना होगा।

वैकल्पिक रूप से आप gaqzi.ssh-config भूमिका roles निर्देशिका में स्थापित कर सकते हैं, जैसा कि अपेक्षित है।
फिर जोड़कर इस भूमिका को लागू करने के अपने प्लेबुक को संशोधित:

roles: 
    - gaqzi.ssh-config 

इस भूमिका को लागू करने के बाद, मॉड्यूल ssh_config अपने प्लेबुक में उपलब्ध हो जाएगा।

+0

यदि आप मॉड्यूल को भूमिका के साथ काम करना चाहते हैं, तो आपको रोल फ़ोल्डर को भूमिका फ़ोल्डर में रखना चाहिए। मैंने अभी पुष्टि की है। – einarc

0

असल में, आप अपने मेटा/main.yml फ़ाइल में अपनी भूमिका की निर्भरता के रूप में एक भूमिका मॉड्यूल, उदाहरण के लिए सेट कर सकते हैं:

--- 
dependencies: 
    - { role: gaqzi.ssh-config } 

तो फिर आप अपने भूमिका में मॉड्यूल का उपयोग शुरू कर सकते हैं।