2010-03-31 11 views
5

FabricDjango प्रोजेक्ट्स को तैनात करने और प्रारंभ में उबंटू slices को कॉन्फ़िगर करने के लिए दोनों का अपना परिनियोजन टूल बन गया है। हालांकि, Fabric साथ मेरे वर्तमान कार्यप्रवाह, बहुत DRY नहीं है के रूप में मुझे लगता है अपने आप को:कई परियोजनाओं में एक fabfile साझा करना

  1. को कॉपी fabfile.py
  2. एक Django दूसरे करने के लिए परियोजना और fabfile.py को संशोधित करने के रूप में (प्रत्येक परियोजना के लिए आवश्यक से जैसे, बदल रहा है webserver_restart अपाचे से Nginx तक कार्य, मेजबान और एसएसएच पोर्ट को कॉन्फ़िगर करना आदि)। इस कार्यप्रवाह की

लाभ यह है कि fabfile.py मेरी Git भंडार का हिस्सा बन जाता, fabfile.py और piprequirements.txt के बीच ऐसा है, तो मैं एक recreateable virtualenv और तैनाती प्रक्रिया है। DRY बनने के दौरान, मैं इस लाभ को रखना चाहता हूं। ऐसा लगता है कि मैं अपने कार्यप्रवाह बेहतर बना सकते हैं द्वारा: रूप में की जरूरत

  1. pip install करने में सक्षम होने सामान्य कार्यों fabfile.py और
  2. प्रत्येक परियोजना के लिए मेजबान विन्यास जानकारी युक्त एक fab_config फ़ाइल होने और किसी भी कार्य अधिभावी में परिभाषित किया गया

Fabric वर्कफ़्लो के DRY नेस को बढ़ाने के तरीके पर कोई सिफारिशें?

उत्तर

2

मैंने कक्षा-आधारित "सर्वर परिभाषाओं" के साथ इस दिशा में कुछ काम किया है जिसमें कनेक्शन जानकारी शामिल है और विशिष्ट कार्यों को अलग-अलग तरीके से करने के तरीकों को ओवरराइड कर सकते हैं। फिर मेरा स्टॉक fabfile.py (जो कभी नहीं बदलता) बस सर्वर परिभाषा ऑब्जेक्ट पर सही विधि को कॉल करता है।

संबंधित मुद्दे