मैं अपने वेब ऐप कोड को विकास, मंचन और उत्पादन सर्वर पर तैनात करने के लिए फैब्रिक का उपयोग करना चाहता हूं। मेरा फैबाइल:
def deploy_2_dev():
deploy('dev')
def deploy_2_staging():
deploy('staging')
def deploy_2_prod():
deploy('prod')
def deploy(server):
print 'env.hosts:', env.hosts
env.hosts = [server]
print 'env.hosts:', env.hosts
नमूना उत्पादन:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
जब मैं फैब्रिक डॉक्सset_hosts()
में दिखाए गए कार्य को बनाता हूं, तो env.hosts ठीक से सेट हो जाता है। हालांकि, यह एक व्यवहार्य विकल्प नहीं है, न ही एक डेकोरेटर है। कमांड लाइन पर मेजबानों को पास करने से अंततः कुछ प्रकार की शेल स्क्रिप्ट का परिणाम होगा जो कि फाफिले को बुलाता है, मैं एक एकल उपकरण को ठीक से काम करना पसंद करूंगा।
फैब्रिक डॉक्स में यह कहा गया है कि 'env.hosts केवल एक पायथन सूची ऑब्जेक्ट है'। मेरी टिप्पणियों से, यह केवल सच नहीं है।
क्या कोई समझा सकता है कि यहां क्या चल रहा है? मैं होस्ट को कैसे परिनियोजित करने के लिए सेट कर सकता हूं?