मेरे पास दो वातावरण हैं, स्टेजिंग और उत्पादन , एक सर्वर पर Capistrano 3 के साथ तैनात किया जा रहा है। प्रत्येक पर्यावरण के लिए तैनात प्रत्येक दूसरे को पूरी तरह से अन्य पर्यावरण की नौकरियों की जगह, एक दूसरे को दबाना।
- अगर मैं
मंचनको तैनात करते हैं, तो सभी क्रोनोज़ को निकाल दिया जाता है औरस्टेजिंगरिहाई पथ और पर्यावरण को संदर्भित नौकरियों के साथ बदल दिया जाता है।उत्पादननौकरियां हटा दी जाती हैं। - अगर मैं
उत्पादनको लागू करता हूं, तो सभी क्रोनोज़ निकाल दिए जाते हैं औरउत्पादनरिलीज पथ और पर्यावरणस्टेजिंगनौकरियां हटा दी जाती हैं। - अगर मैं
केसमेंschedule.rbपरकरता हूं @ पर्यावरण, और केवल एकके लिए सेट की नौकरियां होती हैं, जब 'उत्पादन'स्थिति होती है, तब जबस्टेजिंगतैनात किया जाता है तो यह पूरी तरह से क्रोनबॉज साफ़ करता है
मुझे इन दो स्थितियों में से किसी एक से मिलना होगा:
- दो सेट ऑफ जॉब (एक
स्टेजिंगऔरउत्पादनके लिए एक) जो कि पर्यावरण की तैनाती के माध्यम से प्रत्येक को जारी रखते हैं (इसलिए, नीचे मेरे उदाहरण में, दो नौकरियां सूचीबद्ध होंगी - एकस्टेजिंग रिहाई औरउत्पादनरिलीज के लिए एक) - नौकरियों का एक सेट (केवल
उत्पादन के लिए) जो कि पर्यावरण की तैनाती के माध्यम से बनी रहती है (इसलिए,तैनातीपरिनियोजन इसे दूर नहीं करना चाहिए)
क्या कोई यह समझा सकता है कि यह कैसे किया जाता है?
संस्करण
- capistrano: 3.3.5 < Li> जब भी: 0.9.4
- रूबी: 2.1.5
- रेल: 3.2.21
कैपफ़ाइल
'whenever / capistrano' config / deploy / deploy.rb में प्रासंगिक लाइन की आवश्यकता है
सेट: एप्लिकेशन, 'application_name' config / deploy / production.rb
सर्वर '1.2। 3.4 ', उपयोगकर्ता:' उपयोगकर्ता नाम ', भूमिकाएं:% w {web app} सेट: शाखा,' मास्टर 'सेट: तैनाती_तो,' / घर / उपयोगकर्ता नाम / उत्पादन 'सेट: rails_env,' उत्पादन 'सेट: चरण,: उत्पादन सेट : Whenever_environment, - & gt; {फ़ेच (: स्टेज)} सेट करें: जब भी_निश्चितता, - & gt; {"# {Fetch (: application)} _ # {fetch (: stage)}"} कॉन्फ़िग / परिनियोजित / स्टेजिंग.आरबी
सेट: deploy_to, '/ home / username / स्टेजिंग' सेट: rails_env, 'set' 'स्टेजिंग' सेट: स्टेज, स्टेजिंग सेट: whenever_environment, - & gt; {फ़ेच (: स्टेज)} सेट करें: जब भी_निश्चितता, - & gt; {"# {आनयन (: एप्लिकेशन)} _ # {फ़ेच (स्टेज)}"}कॉन्फ़िग / शेड्यूल.आरबी
सेट: आउटपुट, '/log/cron.log' हर 10 मिनट तक रनर 'ModelName.method_name' एंड एक स्टेजींग परिनियोजित करें
# शुरू करें जब भी कार्य करता है: application_name 0,10,20,30,40,50 * * * * / bin / bash -l - सी 'सीडी / होम / उपयोगकर्ता नाम / स्टेजिंग / रिलीज़ / 20150317012814 & amp; amp; स्क्रिप्ट / रेल रनर -ई स्टेजिंग '\' 'ModelName.method_name' \ '' & gt; & gt; /log/cron.log 2 & gt; और amp; 1 # # जब भी कार्यों को उत्पन्न किया जाता है: application_name
आपके पास वास्तविक क्रॉन नौकरियों के आसपास कोई टिप्पणी ब्लॉक नहीं है? मेरे पास एक पुरानी रेल 3 ऐप है जो इसका उपयोग करता है (और सिर्फ यह) और यह काम करता है शायद यह मदद करेगा:
config / deploy.rb: set: whenever_environment, defer {stage} config / deploy.rb: set: whenever_identifier, defer {"# {application} _ # {चरण} } "} Config / deploy.rb: set: whenever_command, 'bundle exec जब भी'
No comments:
Post a Comment