Module: Capistrano::Saucier

Defined in:
lib/saucier/recipes/chef_librarian.rb,
lib/saucier/recipes/chef_solo.rb,
lib/saucier.rb

Defined Under Namespace

Modules: Recipes

Class Method Summary collapse

Class Method Details

.load_into(configuration) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/saucier.rb', line 9

def self.load_into(configuration)
  configuration.load do
    _cset(:chef_deploy_to, "/etc/chef")
    _cset(:user, "deploy")
    _cset(:group, "rvm")

    namespace :provision do
      after 'deploy:setup', 'provision:set_ownership'
      after 'deploy:update_code', 'provision:symlink_cookbooks'
      after 'deploy:update_code', 'provision:bundle_install'

      set :deploy_to, chef_deploy_to

      task :default do
        transaction do
          deploy.update_code
          chef_librarian.default
          chef_solo.default
          deploy.create_symlink
        end
      end

      task :setup do
        deploy.setup
      end

      task :set_ownership do
        sudo "chown -R #{user}:#{group} #{deploy_to}"
      end

      task :symlink_cookbooks do
        shared_librarian= File.join(shared_path, 'tmp', 'librarian')
        run "mkdir -p #{shared_librarian}"
        run "ln -sF #{shared_librarian} #{current_release}/tmp/"
      end

      task :bundle_install do
        command = []
        command << "cd #{current_release}"
        command << rvm_wrapper("bundle install")
        run command.join(" && ")
      end
    end
  end
end