amoeba_deploy_tools 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38d8d329e3a16a01578208d5d492df39d6076b7c
4
- data.tar.gz: 0cce0437a12718405fc4e99f6a0efbe92a131044
3
+ metadata.gz: 46ec4cdaae2a986f1deb936216e40730eb91b293
4
+ data.tar.gz: 5e9dc6fbd69427688e20961a27a8c4240b14f8f3
5
5
  SHA512:
6
- metadata.gz: 6ca785592ec34e83eccdb2f21a96257453be6ebcda12048e27722aa8a8487e4490919c70de9e2b0159653b3b7314ab477e6b22b155dbc168c06965c086b95ea7
7
- data.tar.gz: d14a8674f969fe78a6305a0370bf22fe1711c8c097335a714164babad7ff1c9bc4924648dced8149dff766984770948b1288467c3e56ab0feeebdc347467be2e
6
+ metadata.gz: f9133cddf24e41e3b34bacf49e886d87d48167d6daeabee94dbaa68a037e7c0bc5ff5f23c5406ba079b5a6a9d8814615991db2fd807f239ac03c38cf87e27ae6
7
+ data.tar.gz: 4a3d5fd6c5bc9586acc57f122887fdd19446dfe373d511335c0ec46db700817226aa063cf0ae08551bedd505cf1fa57c4299680ba377eee0511cc609af2c9e25
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Amoeba Consulting
1
+ Copyright (c) 2014 Amoeba Labs
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -7,7 +7,7 @@ often setting up a chef "kitchen" can be tedious. Additionally, we believe in su
7
7
  deploys. That is, we don't like to maintain and run a separate chef server just to manage our boxes.
8
8
 
9
9
  ADT integrates a number of other tools (`chef-solo`, and `librarian`, and others) and we provide a
10
- [skeleton Kitchen](http://github.com/AmoebaConsulting/amoeba-kitchen-skel), so you can fork our
10
+ [skeleton Kitchen](http://github.com/AmoebaLabs/amoeba-kitchen-skel), so you can fork our
11
11
  kitchen, install this gem, and deploy a node in minutes.
12
12
 
13
13
  ## Short introduction
@@ -79,5 +79,75 @@ The URL is optional, but if specified will be used as the library's git repo. Yo
79
79
  do not already have a Kitchen you wish to use in git, but want to start a new one based on the URL
80
80
  specified).
81
81
 
82
- The default URL is [Amoeba's skeleton](https://github.com/AmoebaConsulting/amoeba-kitchen-skel),
82
+ The default URL is [Amoeba's skeleton](https://github.com/AmoebaLabs/amoeba-kitchen-skel),
83
83
  which will be copied (as if `--skeleton` was specified).
84
+
85
+
86
+ ## Capistrano Integration
87
+
88
+ When building a node using ADT, you are expected to deploy to it using Capistrano. To make things
89
+ easier, we have included some capistrano recipies to assist with your deployment. Note that we
90
+ currently only support Capistrano 2.x, as there were significant changes in 3.x that make it
91
+ incompatible. If you use 3.x, you can still use ADT, but you'll have to symlink the database.yml
92
+ yourself (as well as figure out how to deploy your application initially). We will gladly accept a
93
+ pull request if someone wishes to share it.
94
+
95
+ For those using Capistrano 2.x, you can do the following to use ADT quickly:
96
+
97
+ First, `capify` your application, which generates a `Capfile` that basically loads `config/deploy.rb`
98
+
99
+ Add to your `config/deploy.rb` the following contents:
100
+
101
+ ```ruby
102
+ #### 3rd party recipes
103
+ require "bundler/capistrano"
104
+ require "amoeba_deploy_tools/capistrano"
105
+
106
+ #### Variables
107
+ set :application, "Your App Name"
108
+ set :repository, "[insert git:// url]"
109
+ set :scm, :git
110
+
111
+ #### We will use multi-stage to support several enviornments (in case you use more than one). Be
112
+ #### sure to include all envs you will deploy servers for (normally just QA and Production).
113
+ set :stages, %w(production qa)
114
+ set :default_stage, "qa"
115
+
116
+ require "capistrano/ext/multistage"
117
+
118
+ set :user, "yourappuser"
119
+ set :deploy_to, "/home/yourappuser"
120
+ set :deploy_via, :remote_cache
121
+
122
+ set :use_sudo, false
123
+ set :ssh_options, { forward_agent: true }
124
+ default_run_options[:pty] = true
125
+
126
+ set :branch, 'master' unless exists?(:branch)
127
+
128
+ #### Custom recipes
129
+ # Insert any custom recipes
130
+
131
+ ```
132
+
133
+ ### Customized Capistrano Recipes
134
+
135
+ The line that reads `require "amoeba_deploy_tools/capistrano"` will automagically symlink your
136
+ `database.yml` and allow you to run a `cap amoeba:bootstrap` command, which is used to deploy your
137
+ application for the first time.
138
+
139
+ #### amoeba:bootstrap
140
+
141
+ This is used to bootstrap a "cold" server. Run it once after you first bootstrap your server node
142
+ using ADT. It will perform the following functions:
143
+
144
+ * update
145
+ * db_setup
146
+ * migrate
147
+ * start
148
+
149
+ #### deploy:restart
150
+
151
+ The `cap deploy:restart` command is overridden by ADT so that Passenger's restart method can be used
152
+ (which doesn't require sudo or restarting a process). Instead it just touches tmp/restart.txt in the
153
+ project folder). Feel free to override this behavior if you'd like.
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.email = 'sayhi@amoe.ba'
11
11
  s.summary = 'Easy Chef Solo / Knife operation with Amoeba Deploy Tools.'
12
12
  s.description = 'Easy Chef Solo / Knife operation with Amoeba Deploy Tools.'
13
- s.homepage = 'https://github.com/AmoebaConsulting/amoeba-deploy-tools'
13
+ s.homepage = 'https://github.com/AmoebaLabs/amoeba_deploy_tools'
14
14
  s.license = 'MIT'
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
@@ -6,6 +6,6 @@ else
6
6
  require 'amoeba_deploy_tools/capistrano/recipes'
7
7
 
8
8
  Capistrano::Configuration.instance(:must_exist).load do
9
- after 'deploy:finalize_update', 'amoeba_deploy_tools:symlink_configs'
9
+ after 'deploy:finalize_update', 'amoeba:symlink_configs'
10
10
  end
11
11
  end
@@ -1,18 +1,17 @@
1
1
  require 'amoeba_deploy_tools/capistrano/common'
2
+ require 'amoeba_deploy_tools/capistrano/sidekiq'
2
3
 
3
4
  Capistrano::Configuration.instance(:must_exist).load do
4
5
  _cset(:database_yml_path){ "#{shared_path}/config/database.yml" }
5
6
 
6
- namespace :amoeba_deploy_tools do
7
+ namespace :amoeba do
7
8
  desc 'Link the shared/config files into the current/config dir.'
8
9
  task :symlink_configs, :roles => :app do
9
10
  run [ "cd #{latest_release}",
10
11
  "ln -nfs #{database_yml_path} config/"
11
12
  ].join(' && ')
12
13
  end
13
- end
14
14
 
15
- namespace :deploy do
16
15
  desc "create the database (and load seed data)"
17
16
  task :db_setup do
18
17
  run "cd #{current_path}; bundle exec rake db:setup RAILS_ENV=#{rails_env}"
@@ -25,13 +24,15 @@ Capistrano::Configuration.instance(:must_exist).load do
25
24
  pending migrations, and then instead of invoking `deploy:restart', it will \
26
25
  invoke `deploy:start' to fire up the application servers.
27
26
  DESC
28
- task :cold do
29
- update
30
- db_setup
31
- migrate
32
- start
27
+ task :bootstrap do
28
+ deploy.update
29
+ amoeba.db_setup
30
+ deploy.migrate
31
+ deploy.start
33
32
  end
33
+ end
34
34
 
35
+ namespace :deploy do
35
36
  desc "restart the application (trigger passenger restart)"
36
37
  task :restart, :roles => :app, :except => { :no_release => true } do
37
38
  run "touch #{current_path}/tmp/restart.txt"
@@ -0,0 +1,32 @@
1
+ # Adds sidekiq tasks to capistrano. But they aren't going to be called by default in your deploy
2
+ # process. If you use capistrano, add the following to your deploy.rb (or something included by it):
3
+ #
4
+ # after "deploy:stop", "sidekiq:stop"
5
+ # after "deploy:start", "sidekiq:start"
6
+ # before "deploy:restart", "sidekiq:restart"
7
+
8
+ Capistrano::Configuration.instance.load do
9
+ namespace :sidekiq do
10
+ desc "Start sidekiq"
11
+ task :start, roles: :web do
12
+ sidekiq_processes.times do |i|
13
+ run "#{shared_path}/init/start_sidekiq #{i}"
14
+ end
15
+ end
16
+
17
+ desc "Stop sidekiq"
18
+ task :stop, roles: :web do
19
+ sidekiq_processes.times do |i|
20
+ run "#{shared_path}/init/stop_sidekiq #{i}"
21
+ end
22
+ end
23
+
24
+ desc "Restart sidekiq"
25
+ task :restart, roles: :web do
26
+ stop
27
+ start
28
+ end
29
+ end
30
+ end
31
+
32
+
@@ -1,3 +1,3 @@
1
1
  module AmoebaDeployTools
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amoeba_deploy_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Jabbour
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-16 00:00:00.000000000 Z
12
+ date: 2014-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -122,12 +122,13 @@ files:
122
122
  - LICENSE.txt
123
123
  - README.md
124
124
  - Rakefile
125
- - amoeba-deploy-tools.gemspec
125
+ - amoeba_deploy_tools.gemspec
126
126
  - bin/amoeba
127
127
  - lib/amoeba_deploy_tools.rb
128
128
  - lib/amoeba_deploy_tools/capistrano.rb
129
129
  - lib/amoeba_deploy_tools/capistrano/common.rb
130
130
  - lib/amoeba_deploy_tools/capistrano/recipes.rb
131
+ - lib/amoeba_deploy_tools/capistrano/sidekiq.rb
131
132
  - lib/amoeba_deploy_tools/command.rb
132
133
  - lib/amoeba_deploy_tools/commands/amoeba.rb
133
134
  - lib/amoeba_deploy_tools/commands/app.rb
@@ -148,7 +149,7 @@ files:
148
149
  - spec/amoeba_deploy_tools/config_spec.rb
149
150
  - spec/amoeba_deploy_tools/helpers_spec.rb
150
151
  - spec/spec_helper.rb
151
- homepage: https://github.com/AmoebaConsulting/amoeba-deploy-tools
152
+ homepage: https://github.com/AmoebaLabs/amoeba_deploy_tools
152
153
  licenses:
153
154
  - MIT
154
155
  metadata: {}