पर आधारित विभिन्न कार्यों को निष्पादित करता है, मैं विभिन्न भूमिकाओं को अलग-अलग भूमिकाओं को करने के लिए एक एकल कैपिस्ट्रानो कार्य को कॉल करने का एक तरीका ढूंढ रहा हूं। क्या कैपिस्ट्रानो ऐसा करने में सक्षम है, या क्या मैंने प्रत्येक भूमिका के लिए एक विशिष्ट कार्य लिखा है?एक कैपिस्ट्रानो कार्य बनाना जो भूमिका
उत्तर
Capistrano में ऐसा करने का मानक तरीका:
task :whatever, :roles => [:x, :y, :z] do
x_tasks
y_tasks
z_tasks
end
task :x_tasks, :roles => :x do
#...
end
task :y_tasks, :roles => :y do
#...
end
task :z_tasks, :roles => :z do
#...
end
तो हाँ, आप अलग कार्यों लिखने की जरूरत है, लेकिन आप उन्हें एक माता पिता के काम से कॉल कर सकते हैं और वे उचित रूप से फ़िल्टर करेगा।
वास्तव में कोई:
% cat capfile
server 'localhost', :role2
task :task1, :roles=>:role1 do
puts 'task1'
end
task :task2 do
task1
end
% cap task2
* executing `task2'
* executing `task1'
task1
: भूमिकाओं परम आदेश आदि को चलाने के लिए आगे पारित कर दिया है, लेकिन प्रभावित करने के लिए है कि क्या वास्तव में काम निकाल दिया जाता है नहीं लगता है।
क्षमा करें, टिप्पणी पर टिप्पणी करने का तरीका नहीं मिला है इसलिए मैंने इसे यहां लिखा है।
एक तरह का तरीका है। जांचें: http://weblog.rubyonrails.org/2006/8/30/capistrano-1-1-9-beta/ और आप देखेंगे कि आप ROLES पर्यावरण चर का उपयोग कर डिफ़ॉल्ट भूमिकाओं को ओवरराइड कर सकते हैं।
desc "A simple test to show we can ssh into all servers"
task :echo_hello, :roles => :test do
run "echo 'hello, world!'"
end
:test
भूमिका एक सर्वर के लिए असाइन किया गया है:
मैं के रूप में एक कार्य परिभाषित किया गया है।
कमांड लाइन पर, मैं चला सकते हैं:
[[email protected] bin]$ cap echo_hello ROLES=lots_of_servers
और कार्य अब lots_of_servers भूमिका पर चलेंगे।
मैंने सत्यापित नहीं किया है कि यह ENV
हैश अपडेट करके रूबी स्क्रिप्ट के अंदर काम करता है, लेकिन यह एक अच्छी शुरुआत है। https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown#namespacing-tasks
namespace :backup do
task :default do
web
db
end
task :web, :roles => :web do
puts "Backing Up Web Server"
end
task :db, :roles => :db do
puts "Backing Up DB Server"
end
end
इन कार्यों को केवल रिकार्ड के लिए के रूप में
backup:default
backup:web
backup:db
तुम भी
task :foo do
run "command", :roles => :some_role
upload "source", "destination", :roles => :another_role
end
उपयोग नेमस्पेसिंग कर सकते हैं Capistrano 3:
का उपयोग कर एक समाधान हो सकता हैdesc "Do something specific for 3 different servers with 3 different roles"
task :do_something do
on roles(:api_role), in: :sequence do
# do something in api server
end
on roles(:app_role), in: :sequence do
# do something in application server
end
on roles(:another_role), in: :sequence do
# do something in another server
end
end
Sever परिभाषा प्रदर्शन करने के लिए एक आवेदन सर्वर में "do_something" काम होगा कुछ की तरह:
server 'application.your.domain', user: 'deploy', roles: %w{app_role}
तो फिर तुम काम कॉल कर सकते हैं (वहाँ यह करने के लिए कई तरीके हैं) और काम करेंगे "app_role" के अनुसार विशिष्ट निर्देश निष्पादित करें।
एक टोपी -टी में दिखाई, इस:
- 1. कैपिस्ट्रानो कार्य
- 2. विलंबित कार्य कैपिस्ट्रानो
- 3. केवल कुछ भूमिकाओं के लिए कैपिस्ट्रानो कार्य चलाना
- 4. कैपिस्ट्रानो भूमिका के आधार पर चर सेट कर सकते हैं?
- 5. एक प्रोग्राम बनाना जो विंडोज
- 6. एक सरणी बनाना जो सी ++
- 7. कैपिस्ट्रानो
- 8. कैपिस्ट्रानो
- 9. कैपिस्ट्रानो
- 10. एक अभिव्यक्ति वृक्ष बनाना जो एक विधि
- 11. कैपिस्ट्रानो
- 12. कैपिस्ट्रानो
- 13. कैपिस्ट्रानो:
- 14. कैपिस्ट्रानो
- 15. कैपिस्ट्रानो
- 16. कैपिस्ट्रानो
- 17. कैपिस्ट्रानो
- 18. कैपिस्ट्रानो कार्य में आप कुछ कदम कैसे जोड़ते हैं?
- 19. एक मूस वर्ग में भूमिका निभाने की भूमिका
- 20. यूनिकॉर्न कैपिस्ट्रानो
- 21. कैपिस्ट्रानो तैनाती टाइमआउट
- 22. कैपिस्ट्रानो को
- 23. संपत्ति बनाना जो इंडेक्सऑटऑफेंजेंज एक्सेप्शन
- 24. Twig में Symfony2 सुरक्षा कार्य? उपयोगकर्ता की भूमिका कैसे जांचें?
- 25. php में एक छवि बनाना, प्रदर्शन कार्य, फ़ाइल में सहेजना
- 26. डुप्लिकेट जावास्क्रिप्ट कार्य जो पृष्ठ
- 27. भूमिका
- 28. उपयोगकर्ता भूमिका
- 29. सी # कार्य बनाना और उपयोग करना
- 30. Capistrano में "भूमिका" वास्तव में क्या है?
यह मेरे लिए काम नहीं करता है, सभी तीन कार्यों को निष्पादित किया जाता है। – aceofspades
मेरे लिए भी काम नहीं किया। सभी कार्यों को निष्पादित किया जाता है। –
यहां या तो काम नहीं करता है – Fluffy