大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如何在Capistrano中访问服务器特定的选项?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
namespace :deploy do role :db,"192.168.1.1",:credentials => "db1.yml" role :db,:credentials => "db2.yml" task :@R_618_11174@ask,:roles => :db do credentials = YAMl.load_file(something) ...
那可能吗?为了访问当前服务器配置,应该用什么替代?
role :db,"db1",{ :credentials => 'db1-credentials'} role :db,"db2",{ :credentials => 'db2-credentials'} role :db,"db3" namespace :stackoverflow do # Don't run this task on host that don't have credentials defined task :default,{:role => :db,:except => {:credentials => nil } } do servers = find_servers_for_task(current_task) servers.each do |server| credentials = server.options[:credentials] puts credentials # actual task end end end
我现在看到,我可能以混乱的方式提出了这个问题 – 那是因为我没有理解,那个任务是同时运行的.
这实际上将为每个服务器执行一次任务(这里放置凭证),这是我正在尝试的.
输出:
$cap stackoverflow * execuTing `stackoverflow' db1-credentials db2-credentials
向任务添加过滤器是一个好主意,如果服务器没有凭据,它将不会运行.
话虽如此,使得团队中的每个人都保持目前(并且出于安全原因非版本),所有服务器的凭据证明是太麻烦了(从而打败了使用Capistrano的想法).现在,而不是将外部配置保留在用户的磁盘上,我将保留受影响的服务器上的数据(大部分以可运行的脚本的形式,其中隐藏所有凭据).喜欢这个:
task :dump {:role => :db} do run "/root/dump_db.sh | gzip > /tmp/dump.sql.gz" download "/tmp/dump.sql.gz","somewhere" end
以上是大佬教程为你收集整理的ruby-on-rails – 如何在Capistrano中访问服务器特定的选项?全部内容,希望文章能够帮你解决ruby-on-rails – 如何在Capistrano中访问服务器特定的选项?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。