From e3318f850024c3299ab6dadebc8f17564b13c3f7 Mon Sep 17 00:00:00 2001 From: renansoares Date: Wed, 30 Mar 2016 17:34:13 -0300 Subject: [PATCH] more changes for new deploy mode --- Capfile | 22 ++++++++++++++++++---- config/deploy.rb | 54 ++++++++++++++++-------------------------------------- config/deploy.rb.1 | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 140 insertions(+), 42 deletions(-) create mode 100644 config/deploy.rb.1 diff --git a/Capfile b/Capfile index 6b297ad..080238a 100644 --- a/Capfile +++ b/Capfile @@ -1,11 +1,25 @@ # Load DSL and Setup Up Stages require 'capistrano/setup' + +# Includes default deployment tasks require 'capistrano/deploy' -require 'capistrano/rails' -require 'capistrano/bundler' -require 'capistrano/rvm' -require 'capistrano/puma' +# Includes tasks from other gems included in your Gemfile +# +# For documentation on these, see for example: +# +# https://github.com/capistrano/rvm +# https://github.com/capistrano/rbenv +# https://github.com/capistrano/chruby +# https://github.com/capistrano/bundler +# https://github.com/capistrano/rails +# +# require 'capistrano/rvm' +# require 'capistrano/rbenv' +# require 'capistrano/chruby' +# require 'capistrano/bundler' +# require 'capistrano/rails/assets' +# require 'capistrano/rails/migrations' # Loads custom tasks from `lib/capistrano/tasks' if you have any defined. Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } diff --git a/config/deploy.rb b/config/deploy.rb index 17032ee..4118eda 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -1,23 +1,18 @@ -# -*- encoding : utf-8 -*- -# config valid only for Capistrano 3.1 -lock '3.2.1' +# Change these +server '150.165.204.80', port: 22, password: 'l1br4s-l1v3', roles: [:web, :app, :db], primary: true -server '150.165.204.80', port: 22, roles: [:web, :app, :db], primary: true - -set :application, 'vlibras-web2' set :repo_url, 'git@git.lavid.ufpb.br:vlibras-web2.git' set :application, 'vlibras-web2' set :user, 'deployer' - -# Default branch is :master -ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call - set :puma_threads, [4, 16] set :puma_workers, 0 -# Default deploy_to directory is /var/www/my_app +# Don't change these unless you know what you're doing +set :pty, true +set :use_sudo, false +set :stage, :production +set :deploy_via, :remote_cache set :deploy_to, "/home/#{fetch(:user)}/apps/#{fetch(:application)}" -set :deploy_via, :copy set :puma_bind, "unix://#{shared_path}/tmp/sockets/#{fetch(:application)}-puma.sock" set :puma_state, "#{shared_path}/tmp/pids/puma.state" set :puma_pid, "#{shared_path}/tmp/pids/puma.pid" @@ -28,33 +23,16 @@ set :puma_preload_app, true set :puma_worker_timeout, nil set :puma_init_active_record, true # Change to false when not using ActiveRecord -set :rails_env, 'production' - -set :use_sudo, false - -# Default value for :scm is :git -# set :scm, :git - -# Default value for :format is :pretty -# set :format, :pretty - -# Default value for :log_level is :debug -# set :log_level, :debug - -# Default value for :pty is false -set :pty, true - -# Default value for :linked_files is [] -set :linked_files, %w{config/database.yml .env} - -# Default value for linked_dirs is [] -set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} - -# Default value for default_env is {} -# set :default_env, { path: "/opt/ruby/bin:$PATH" } +## Defaults: +# set :scm, :git +# set :branch, :master +# set :format, :pretty +# set :log_level, :debug +# set :keep_releases, 5 -# Default value for keep_releases is 5 -set :keep_releases, 3 +## Linked Files & Directories (Default None): +# set :linked_files, %w{config/database.yml} +# set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} namespace :puma do desc 'Create Directories for Puma Pids and Socket' diff --git a/config/deploy.rb.1 b/config/deploy.rb.1 new file mode 100644 index 0000000..cc0cb86 --- /dev/null +++ b/config/deploy.rb.1 @@ -0,0 +1,106 @@ +# -*- encoding : utf-8 -*- +# config valid only for Capistrano 3.1 +lock '3.2.1' + +server '150.165.204.80', port: 22, password: 'l1br4s-l1v3', roles: [:web, :app, :db], primary: true + +set :application, 'vlibras-web2' +set :repo_url, 'git@git.lavid.ufpb.br:vlibras-web2.git' +set :application, 'vlibras-web2' +set :user, 'deployer' + +# Default branch is :master +ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call + +set :puma_threads, [4, 16] +set :puma_workers, 0 + +# Default deploy_to directory is /var/www/my_app +set :deploy_to, "/home/#{fetch(:user)}/apps/#{fetch(:application)}" +set :deploy_via, :remote_cache +set :puma_bind, "unix://#{shared_path}/tmp/sockets/#{fetch(:application)}-puma.sock" +set :puma_state, "#{shared_path}/tmp/pids/puma.state" +set :puma_pid, "#{shared_path}/tmp/pids/puma.pid" +set :puma_access_log, "#{release_path}/log/puma.error.log" +set :puma_error_log, "#{release_path}/log/puma.access.log" +set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa.pub) } +set :puma_preload_app, true +set :puma_worker_timeout, nil +set :puma_init_active_record, true # Change to false when not using ActiveRecord + +set :rails_env, 'production' + +set :use_sudo, false + +# Default value for :scm is :git +# set :scm, :git + +# Default value for :format is :pretty +# set :format, :pretty + +# Default value for :log_level is :debug +# set :log_level, :debug + +# Default value for :pty is false +set :pty, true + +# Default value for :linked_files is [] +set :linked_files, %w{config/database.yml .env} + +# Default value for linked_dirs is [] +set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} + +# Default value for default_env is {} +# set :default_env, { path: "/opt/ruby/bin:$PATH" } + +# Default value for keep_releases is 5 +set :keep_releases, 3 + +namespace :puma do + desc 'Create Directories for Puma Pids and Socket' + task :make_dirs do + on roles(:app) do + execute "mkdir #{shared_path}/tmp/sockets -p" + execute "mkdir #{shared_path}/tmp/pids -p" + end + end + + before :start, :make_dirs +end + +namespace :deploy do + desc "Make sure local git is in sync with remote." + task :check_revision do + on roles(:app) do + unless `git rev-parse HEAD` == `git rev-parse origin/master` + puts "WARNING: HEAD is not the same as origin/master" + puts "Run `git push` to sync changes." + exit + end + end + end + + desc 'Initial Deploy' + task :initial do + on roles(:app) do + before 'deploy:restart', 'puma:start' + invoke 'deploy' + end + end + + desc 'Restart application' + task :restart do + on roles(:app), in: :sequence, wait: 5 do + invoke 'puma:restart' + end + end + + before :starting, :check_revision + after :finishing, :compile_assets + after :finishing, :cleanup + after :finishing, :restart +end + +# ps aux | grep puma # Get puma pid +# kill -s SIGUSR2 pid # Restart puma +# kill -s SIGTERM pid # Stop puma -- libgit2 0.21.2