2015-11-10 16 views
5

में तैनाती मैं विन्यास प्रबंधन के लिए Ansible और निम्नलिखित कार्य का उपयोग कर रहा एक Git रेपो क्लोन करने के लिए कैसे खींचने के लिए:जबकि ansible

# Example git checkout from Ansible Playbooks 
- git: repo=git://foosball.example.org/path/to/repo.git 
     dest=/srv/checkout 
     version=release-0.22 

इस विशेष संस्करण के साथ रेपो क्लोन।

क्या यह git pull करता है जब रेपो पहले से मौजूद है तो फिर से चलाएं? या यह बस हर समय रेपो क्लोन करता है? उत्तर में git pull कैसे करें यदि रेपो पहले से मौजूद है और रेपो मौजूद होने पर और यदि समान समय पर क्लोन किया जाता है तो हम एक विशिष्ट कमांड कैसे चला सकते हैं?

उत्तर

7

उत्तरदायी एक घोषणात्मक टूल है जिसमें आप वर्णन करते हैं कि आप अपने सर्वर/पर्यावरण को कैसे देखना चाहते हैं और ऐसा करने के लिए उत्तरदायी प्रयास क्या हैं। यह idempotent होने के लिए भी डिज़ाइन किया गया है जिसका अर्थ है कि आपके नाटकों को फिर से चलाने से प्रत्येक बार एक ही अंतिम परिणाम पुन: उत्पन्न करना चाहिए जब तक कि नीचे कुछ भी नहीं बदला गया हो।

git module यह भी बताता है और बस यह सुनिश्चित करने का प्रयास करता है कि रिमोट होस्ट पर इसके लिए और संस्करण (या शाखा/टैग) पर रेपो है जिसे आपने वैकल्पिक रूप से पूछा है।

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

यदि आप update संपत्ति के लिए एक टैग/शाखा/प्रतिबद्धता निर्दिष्ट करते हैं तो यह उस संस्करण को आसानी से देखेगा और उसे खींच देगा।

+0

आपके उत्तर के लिए धन्यवाद। लेकिन गिट रिवर्ट कैसे करें? –

+1

ए 'गिट रिवर्ट' एक आगे परिवर्तन है जो आपके रेपो को प्रभावित करता है और ऐसा कुछ नहीं जिसे आप आम तौर पर उपयोग करना चाहते हैं (या किसी निर्माण उपकरण के अलावा कोई भी स्वचालित टूल)। यह सुनिश्चित करने के लिए उत्तरदायी का उपयोग करें कि आपके कोड का कौन सा संस्करण (यानी शाखा/टैग/प्रतिबद्ध रेफरी) जिसे आप मेजबान पर चाहते हैं और उसे छोड़ दें। – ydaetskcoR