आपके पास दो विकल्प यहाँ अगर अपने टेम्पलेट दूरस्थ होस्ट पर होने जा रहा है मिल गया है।
सबसे पहले, आप fetch मॉड्यूल का उपयोग कर सकते हैं जो रिमोट होस्ट पर रेपो क्लोन करने के बाद टेम्पलेट को वापस लाने के लिए copy मॉड्यूल के विपरीत काफी काम करता है।
- name : clone repo on remote hosts
git :
repo : {{ git_repo_src }}
dest : {{ git_repo_dest }}
- name : fetch template from single remote host
run_once : true
fetch :
src : {{ template_path }}/{{ template_file }}
dest : /tmp/{{ template_file }}
flat : yes
fail_on_missing : yes
- name : template remote hosts
template :
src : /tmp/{{ template_file }}
dest : {{ templated_file_dest }}
owner : {{ templated_file_owner }}
group : {{ templated_file_group }}
mode : {{ templated_file_mode }}
लाने कार्य run_once
का उपयोग करता है यकीन है कि यह सिर्फ पहला मेजबान इसके खिलाफ बने रास्ते से टेम्पलेट को कॉपी परेशान करने के लिए:
इस के लिए एक प्लेबुक की तरह कुछ लग सकता है। मान लें कि इन सभी मेजबानों को आपके खेल में एक ही रेपो मिल रहा है, तो यह ठीक होना चाहिए, लेकिन अगर आपको यह सुनिश्चित करने की ज़रूरत है कि यह एक बहुत ही विशिष्ट मेजबान से कॉपी हो तो आप इसे delegate_to
से जोड़ सकते हैं।
वैकल्पिक रूप से आप सिर्फ Ansible क्लोन रेपो स्थानीय स्तर पर है और यह सीधे का उपयोग की तरह कुछ के साथ कर सकते हैं:
- name : clone repo on remote hosts
git :
repo : {{ git_repo_src }}
dest : {{ git_repo_dest }}
- name : clone repo on Ansible host
hosts : localhost
connection : local
git :
repo : {{ git_repo_src }}
dest : {{ git_repo_local_dest }}
- name : template remote hosts
template :
src : {{ template_local_src }}
dest : {{ templated_file_dest }}
owner : {{ templated_file_owner }}
group : {{ templated_file_group }}
mode : {{ templated_file_mode }}
क्यों Ansible रूप में अच्छी तरह से अपने अन्य रेपो खींच करने की अनुमति नहीं? – ydaetskcoR
उत्तरदायी क्लोन रिमोट सर्वर पर रेपो। एक बार यह क्लोन हो जाने के बाद, मुझे रेपो में मौजूद टेम्पलेट का उपयोग करके परिवर्तन करना होगा और अब रिमोट मशीन पर है। – trajan
हाँ लेकिन क्यों अपने रेपो स्थानीय स्तर पर खींच Ansible नहीं लक्ष्य मेजबान पर यह क्लोनिंग के रूप में भी कर सकते हैं? फिर यह टेम्पलेट कार्यक्षमता का उपयोग कर सकता है। टेम्पलेट को मेजबान से वापस खींचने के लिए आपका विकल्प 'fetch' का उपयोग करना है, लेकिन यह मेरे लिए कम साफ विधि जैसा लगता है। – ydaetskcoR