capistrano-fiftyfive 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +5 -4
- data/lib/capistrano/fiftyfive/version.rb +1 -1
- data/lib/capistrano/fiftyfive.rb +1 -0
- data/lib/capistrano/tasks/aptitude.rake +26 -2
- data/lib/capistrano/tasks/provision.rake +18 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e23bb6c0cd0ee5b7bdf7cbce96bc25c9c2e86a3a
|
4
|
+
data.tar.gz: 32a703d754d35f55903c9f9718f4ebade51a4598
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39b2ddc41c28bc51c30b84eab97ca7bdd825d86a2cf58b9b1d9b2f26c62f6e87a75dd28b478cfc0a6405c1e745abd801f88f84cb7c730e3676832dadf1333e6a
|
7
|
+
data.tar.gz: e17816da9a56350727d87c86fb504927c30c20ffe4da75ccb7d8bee8abd526a221c9e3b2fc0312a8b01520aa8499811a16141da22afe00a9bba3e9b16b6c2288
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# capistrano-fiftyfive Changelog
|
2
2
|
|
3
|
+
## `0.10.0`
|
4
|
+
|
5
|
+
Add support for Ubuntu 14.04 LTS. To provision a 14.04 server, use the new `provision:14_04` task.
|
6
|
+
|
3
7
|
## `0.9.1`
|
4
8
|
|
5
9
|
Flush console output after each line is printed. This allows deployment progress to be monitored in e.g. Jenkins.
|
data/README.md
CHANGED
@@ -19,7 +19,7 @@ The capistrano-fiftyfive gem adds a `cap <stage> provision` task to Capistrano t
|
|
19
19
|
|
20
20
|
The gem is named "capistrano-fiftyfive" because it is built first and foremost for serving our deployment needs here at [55 Minutes](http://55minutes.com). You'll notice that capistrano-fiftyfive is opinionated and strictly uses the following stack:
|
21
21
|
|
22
|
-
* Ubuntu 12.04 LTS
|
22
|
+
* Ubuntu 12.04 LTS or 14.04 LTS
|
23
23
|
* PostgreSQL
|
24
24
|
* Unicorn
|
25
25
|
* Nginx
|
@@ -121,7 +121,7 @@ Check out our [rails-starter][] project for a sample Capfile and deploy.rb.
|
|
121
121
|
## Usage
|
122
122
|
|
123
123
|
The power of the capistrano-fiftyfive recipes is that they take care of the
|
124
|
-
entire setup of a bare Ubuntu 12.04 server, all the way to a fully configured
|
124
|
+
entire setup of a bare Ubuntu 12.04 or 14.04 server, all the way to a fully configured
|
125
125
|
and running Rails app on top up Unicorn, Nginx, rbenv, and PostgreSQL.
|
126
126
|
|
127
127
|
### Deploying to a new server from scratch
|
@@ -129,13 +129,14 @@ and running Rails app on top up Unicorn, Nginx, rbenv, and PostgreSQL.
|
|
129
129
|
These steps assume you have loaded the full set of capistrano-fiftyfive
|
130
130
|
recipes in your Capfile.
|
131
131
|
|
132
|
-
1. Provision an Ubuntu 12.04 VPS at your hosting provider of choice.
|
132
|
+
1. Provision an Ubuntu 12.04 or 14.04 VPS at your hosting provider of choice.
|
133
133
|
2. Install your public SSH key for the root user. Some providers (e.g. DigitalOcean) can do this for you automatically when you provision a new VPS.
|
134
134
|
3. Repeat steps 1-2 for all the servers in your cluster, if you are using
|
135
135
|
a multi-server setup (e.g. separate web, app, and database servers).
|
136
136
|
4. Let capistrano-fiftyfive take it from here:
|
137
137
|
|
138
|
-
cap staging provision
|
138
|
+
cap staging provision # for 12.04 LTS
|
139
|
+
cap staging provision:14_04 # for 14.04 LTS
|
139
140
|
cap staging deploy
|
140
141
|
|
141
142
|
### Running individual tasks
|
data/lib/capistrano/fiftyfive.rb
CHANGED
@@ -7,6 +7,7 @@ require "capistrano/fiftyfive/console"
|
|
7
7
|
require "sshkit/formatter/abbreviated"
|
8
8
|
include Capistrano::Fiftyfive::DSL
|
9
9
|
|
10
|
+
load File.expand_path("../tasks/provision.rake", __FILE__)
|
10
11
|
load File.expand_path("../tasks/defaults.rake", __FILE__)
|
11
12
|
load File.expand_path("../tasks/user.rake", __FILE__)
|
12
13
|
load File.expand_path("../tasks/aptitude.rake", __FILE__)
|
@@ -1,5 +1,7 @@
|
|
1
1
|
fiftyfive_recipe :aptitude do
|
2
2
|
during :provision, %w(upgrade install)
|
3
|
+
before "provision:14_04", "fiftyfive:aptitude:install_postgres_repo"
|
4
|
+
before "provision:14_04", "fiftyfive:aptitude:change_postgres_packages"
|
3
5
|
end
|
4
6
|
|
5
7
|
namespace :fiftyfive do
|
@@ -34,15 +36,37 @@ namespace :fiftyfive do
|
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
39
|
+
desc "Add the official apt repository for PostgreSQL"
|
40
|
+
task :install_postgres_repo do
|
41
|
+
privileged_on roles(:all) do |host|
|
42
|
+
_add_repository(
|
43
|
+
"deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main",
|
44
|
+
:key => "https://www.postgresql.org/media/keys/ACCC4CF8.asc")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "Change 12.04 PostgreSQL package requirements to 14.04 versions"
|
49
|
+
task :change_postgres_packages do
|
50
|
+
packages = fetch(:fiftyfive_aptitude_packages, {})
|
51
|
+
packages = Hash[packages.map do |key, value|
|
52
|
+
[key.sub(/@ppa:pitti\/postgresql$/, ""), value]
|
53
|
+
end]
|
54
|
+
set(:fiftyfive_aptitude_packages, packages)
|
55
|
+
end
|
56
|
+
|
37
57
|
def _already_installed?(pkg)
|
38
58
|
test(:dpkg, "-s", pkg, "2>/dev/null", "|", :grep, "-q 'ok installed'")
|
39
59
|
end
|
40
60
|
|
41
|
-
def _add_repository(repo)
|
61
|
+
def _add_repository(repo, options={})
|
42
62
|
unless _already_installed?("python-software-properties")
|
43
63
|
_install("python-software-properties")
|
44
64
|
end
|
45
|
-
execute :"apt-add-repository", "-y
|
65
|
+
execute :"apt-add-repository", "-y '#{repo}'"
|
66
|
+
|
67
|
+
if (key = options.fetch(:key, nil))
|
68
|
+
execute "wget --quiet -O - #{key} | sudo apt-key add -"
|
69
|
+
end
|
46
70
|
end
|
47
71
|
|
48
72
|
def _install(pkg)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Define empty provision tasks.
|
2
|
+
# These will be filled in by other recipes that contribute additional
|
3
|
+
# `before` and `during` tasks.
|
4
|
+
|
5
|
+
desc "Install and set up all app prerequisites (assumes Ubuntu 12.04)"
|
6
|
+
task :provision
|
7
|
+
|
8
|
+
namespace :provision do
|
9
|
+
desc "Install and set up all app prerequisites for Ubuntu 12.04"
|
10
|
+
task :"12_04" do
|
11
|
+
invoke "provision"
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Install and set up all app prerequisites for Ubuntu 14.04"
|
15
|
+
task :"14_04" do
|
16
|
+
invoke "provision"
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-fiftyfive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Brictson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/capistrano/tasks/migrate.rake
|
129
129
|
- lib/capistrano/tasks/nginx.rake
|
130
130
|
- lib/capistrano/tasks/postgresql.rake
|
131
|
+
- lib/capistrano/tasks/provision.rake
|
131
132
|
- lib/capistrano/tasks/rake.rake
|
132
133
|
- lib/capistrano/tasks/rbenv.rake
|
133
134
|
- lib/capistrano/tasks/seed.rake
|