Class: YaQueenRoleFontana::Manage

Inherits:
YaQueen::Base
  • Object
show all
Defined in:
lib/ya_queen_role_fontana/manage.rb

Instance Method Summary collapse

Instance Method Details

#define_common_taskObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/ya_queen_role_fontana/manage.rb', line 48

def define_common_task
  t = self
  config = self.config
  task :"@manage/common" do
    set :user, config['user']
    set :scm,            :git
    # set :scm_verbose,    true
    # set :repository,     config["repository"] # deploy.rbかステージファイルで指定される

    set :default_branch, "master"
    set :branch do
      tag = Capistrano::CLI.ui.ask "branch or tag : [#{default_branch}] "
      tag = default_branch if tag.empty?
      tag
    end

    role :web, config['server']
    role :app, config['server']
    #role :db , config['server'], :primary => true
    role :management, config['server']

    # mongoid.yml のテンプレート
    # .erbが設定されている場合は、config/mongoid.ymlをこのテンプレートから生成します。
    set :mongoid_yml_template, "config/mongoid.yml.production.erb"
    set :tengine_servers, t.root['tengine']['servers']
  end
end

#define_each_tasksObject



44
45
46
# File 'lib/ya_queen_role_fontana/manage.rb', line 44

def define_each_tasks
  # do nothing
end

#define_manage_apisrv_taskObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ya_queen_role_fontana/manage.rb', line 14

def define_manage_apisrv_task
  t = self
  config = self.config
  ## [ローカルPC->管理用サーバ] ローカルPCから、管理用サーバに ApiSrv としてデプロイするためのタスク
  task :"@manage/apisrv" do
    set :deploy_to,  config['apisrv']['deploy_to']
    set :gemfile_name, "ApiServer"
    ## deploy:assets:precompile をさせない
    ## assets_role を空にするだけでは no matching servers でエラーになる。HOSTFILTERをつけることで no matching servers でも先に進めるようになる。
    set :assets_role, []
    ENV['HOSTFILTER'] = config['server']
    ## manage/apisrv 以外と混ざらないようにする
    t.set_deploy_target current_task.name
  end
  after :"@manage/apisrv", :"@manage/common"
end

#define_manage_gotool_taskObject



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ya_queen_role_fontana/manage.rb', line 31

def define_manage_gotool_task
  t = self
  config = self.config
  ## [ローカルPC->管理用サーバ] ローカルPCから、管理用サーバに GOTool としてデプロイするためのタスク
  task :"@manage/gotool" do
    set :deploy_to,  config['gotool']['deploy_to']
    set :gemfile_name, "GOTool"
    ## manage/apisrv 以外と混ざらないようにする
    t.set_deploy_target current_task.name
  end
  after :"@manage/gotool", :"@manage/common"
end

#define_role_taskObject



9
10
11
12
# File 'lib/ya_queen_role_fontana/manage.rb', line 9

def define_role_task
  define_manage_apisrv_task
  define_manage_gotool_task
end