2015-07-13 8 views
10

पर उत्तरदायी टेम्पलेट्स के साथ स्थानीय रूप से फ़ाइल कैसे बनाएं, मैं उत्तरदायी से शुरुआत कर रहा हूं और मैं सर्वर पर और स्थानीय वातावरण पर उत्तरदायी प्लेबुक के साथ बॉयलरप्लेट प्रोजेक्ट बनाने का एक तरीका ढूंढ रहा हूं।विकास मशीन

मैं कुछ सामान्य फाइलें बनाने के लिए स्थानीय रूप से उत्तरदायी टेम्पलेट का उपयोग करना चाहता हूं। लेकिन मैं स्थानीय रूप से कुछ निष्पादित करने के लिए उत्तरदायी कैसे ले सकता हूं?

मैंने स्थानीय_एक्शन के साथ कुछ पढ़ा लेकिन मुझे लगता है कि मुझे यह अधिकार नहीं मिला।

यह वेबसर्वर के लिए है ... लेकिन मैं इसे कैसे ले सकता हूं और स्थानीय रूप से कुछ फाइलें कैसे बना सकता हूं?


- hosts: webservers 
     remote_user: someuser 
- name: create some file 
    template: src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini 

उत्तर

20

आप परम delegate_to उदाहरण के लिए आप की तरह किसी भी मेजबान, के साथ कार्य प्रतिनिधि कर सकते हैं:

- name: create some file 
    template: src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini 
    delegate_to: localhost 

Playbook Delegation देखें डॉक्स में।

यदि आपकी प्लेबुक सामान्य रूप से स्थानीय रूप से चलनी चाहिए और कोई बाहरी होस्ट शामिल नहीं है, तो आप बस एक समूह बना सकते हैं जिसमें localhost है और फिर इस समूह के विरुद्ध प्लेबुक चलाएं।

[local] 
localhost 

और फिर अपने प्लेबुक में: अपनी सूची में

hosts: local 
+0

एक बहुत Thaanks ... लेकिन ansible मेरी स्थानीय होस्ट में ssh करने की कोशिश करता है? एसएसएच त्रुटि मिली: एसएसएच: स्थानीयहोस्ट पोर्ट होस्ट करने के लिए कनेक्ट 22: कनेक्शन से इनकार कर दिया गया यह आवश्यक है? – Jurudocs

+2

जैसा लगता है। मैंने सोचा कि उन्होंने इसे बदल दिया है और आपको स्थानीय कनेक्शन को मजबूर करने की आवश्यकता नहीं है। शायद आपके पास पुरानी उत्तरदायी है? वैसे भी, आप इसे अपनी सूची में जोड़ सकते हैं: 'localhost ansible_connection = local' - या अगर पूरी प्लेबुक स्थानीय रूप से चलनी चाहिए तो आप इसे यहां वर्णित की तरह कर सकते हैं: https://docs.ansible.com/playbooks_delegation.html#local-playbooks – udondan

+0

काम करता है बहुत बहुत धन्यवाद! – Jurudocs

9

Ansible एक local_action निर्देश जो localhost और/या ansible_connection समाधानों से बचा जाता है और Delegation डॉक्स में कवर किया जाता है इन परिदृश्यों का समर्थन किया है।

संशोधित करने के लिए अपने मूल उदाहरण local_action उपयोग करने के लिए:

- name: create some file 
    local_action: template src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini 

जो क्लीनर लग रहा है।

0

यदि आप लोकलहोस्ट एसएसएच नहीं कर सकते/अनुमति नहीं दे सकते हैं, तो आप स्थानीय कार्यों और दूरस्थ कार्यों पर प्लेबुक को विभाजित कर सकते हैं।

connection: local एक प्लेबुक के लिए SSH का उपयोग नहीं करने के लिए, जैसा कि यहाँ दिखाया कहते हैं: http://docs.ansible.com/ansible/playbooks_delegation.html#local-playbooks

उदाहरण:

# myplaybook.yml 

- hosts: remote_machines 
    tasks: 
    - debug: msg="do stuff in the remote machines" 

- hosts: 127.0.0.1 
    connection: local 
    tasks: 
    - debug: msg="ran in local ansible machine" 

- hosts: remote_machines 
    tasks: 
    - debug: msg="do more stuff in remote machines" 
संबंधित मुद्दे