pvcglue 0.1.39 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/README.md +12 -3
- data/bin/pvc +4 -2
- data/lib/pvcglue.rb +106 -21
- data/lib/pvcglue/bootstrap.rb +1 -1
- data/lib/pvcglue/cli.rb +28 -17
- data/lib/pvcglue/cloud.rb +243 -56
- data/lib/pvcglue/configuration.rb +43 -5
- data/lib/pvcglue/connection.rb +236 -0
- data/lib/pvcglue/custom_hashie.rb +3 -0
- data/lib/pvcglue/db.rb +19 -13
- data/lib/pvcglue/digital_ocean.rb +21 -0
- data/lib/pvcglue/env.rb +52 -28
- data/lib/pvcglue/manager.rb +38 -25
- data/lib/pvcglue/minion.rb +182 -0
- data/lib/pvcglue/nodes.rb +1 -1
- data/lib/pvcglue/{packages → old_packages}/bootstrap.rb +15 -15
- data/lib/pvcglue/{packages → old_packages}/env.rb +8 -8
- data/lib/pvcglue/old_packages/firewall.rb +48 -0
- data/lib/pvcglue/old_packages/manager.rb +116 -0
- data/lib/pvcglue/{packages → old_packages}/monit-bootstrap.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/monit-web.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/nginx.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/nodejs.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/passenger.rb +0 -0
- data/lib/pvcglue/old_packages/postgresql.rb +10 -0
- data/lib/pvcglue/{packages → old_packages}/role_db.rb +9 -9
- data/lib/pvcglue/{packages → old_packages}/role_lb.rb +6 -6
- data/lib/pvcglue/{packages → old_packages}/role_memcached.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/role_redis.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/role_web.rb +9 -9
- data/lib/pvcglue/old_packages/rvm.rb +78 -0
- data/lib/pvcglue/{packages → old_packages}/timezone.rb +0 -0
- data/lib/pvcglue/{packages → old_packages}/ubuntu.rb +0 -0
- data/lib/pvcglue/packages.rb +192 -71
- data/lib/pvcglue/packages/apt.rb +74 -0
- data/lib/pvcglue/packages/apt_repos.rb +48 -0
- data/lib/pvcglue/packages/apt_update.rb +18 -0
- data/lib/pvcglue/packages/apt_upgrade.rb +20 -0
- data/lib/pvcglue/packages/authorized_keys.rb +33 -0
- data/lib/pvcglue/packages/bundler.rb +14 -0
- data/lib/pvcglue/packages/dir_base.rb +16 -0
- data/lib/pvcglue/packages/dir_shared.rb +16 -0
- data/lib/pvcglue/packages/firewall.rb +30 -46
- data/lib/pvcglue/packages/load_balancer.rb +71 -0
- data/lib/pvcglue/packages/maintenance_mode.rb +28 -0
- data/lib/pvcglue/packages/manager.rb +101 -99
- data/lib/pvcglue/packages/postgresql.rb +36 -8
- data/lib/pvcglue/packages/roles.rb +23 -0
- data/lib/pvcglue/packages/ruby.rb +13 -0
- data/lib/pvcglue/packages/rvm.rb +18 -71
- data/lib/pvcglue/packages/secrets.rb +36 -0
- data/lib/pvcglue/packages/ssh_key_check.rb +11 -0
- data/lib/pvcglue/packages/ssl.rb +45 -0
- data/lib/pvcglue/packages/ssl_acme.rb +29 -0
- data/lib/pvcglue/packages/swap.rb +14 -0
- data/lib/pvcglue/packages/unattended_upgrades.rb +20 -0
- data/lib/pvcglue/packages/users.rb +20 -0
- data/lib/pvcglue/packages/web.rb +50 -0
- data/lib/pvcglue/stack.rb +166 -0
- data/lib/pvcglue/templates/50unattended-upgrades.erb +63 -0
- data/lib/pvcglue/templates/capfile.erb +4 -1
- data/lib/pvcglue/templates/deploy.rb.erb +3 -2
- data/lib/pvcglue/templates/lb.sites-enabled.erb +15 -9
- data/lib/pvcglue/templates/letsencrypt-webroot.erb +3 -0
- data/lib/pvcglue/templates/pg_hba.conf.erb +1 -2
- data/lib/pvcglue/templates/postgresql.conf.erb +376 -291
- data/lib/pvcglue/templates/stage-deploy.rb.erb +2 -2
- data/lib/pvcglue/templates/web.bashrc.erb +16 -5
- data/lib/pvcglue/templates/web.nginx.conf.erb +1 -1
- data/lib/pvcglue/templates/web.sites-enabled.erb +1 -1
- data/lib/pvcglue/version.rb +1 -1
- data/pvcglue.gemspec +17 -12
- metadata +125 -22
@@ -10,8 +10,8 @@ set :delayed_job_args, "<%= Pvcglue.cloud.delayed_job_args %>"
|
|
10
10
|
<% end %>
|
11
11
|
set :ssh_options, {port: <%= Pvcglue.cloud.port_in_context(:deploy) %>}
|
12
12
|
|
13
|
-
<% Pvcglue.cloud.
|
14
|
-
server '<%=
|
13
|
+
<% Pvcglue.cloud.minions_filtered('web').each do |minion_name, minion| %>
|
14
|
+
server '<%= minion.public_ip %>', roles: %w{web app db}, user: '<%= minion.remote_user_name %>' # server: <%= minion_name.to_s %>
|
15
15
|
<% end %>
|
16
16
|
<% if Pvcglue.cloud.db_rebuild %>
|
17
17
|
|
@@ -10,7 +10,10 @@ fi
|
|
10
10
|
# for examples
|
11
11
|
|
12
12
|
# If not running interactively, don't do anything
|
13
|
-
|
13
|
+
case $- in
|
14
|
+
*i*) ;;
|
15
|
+
*) return;;
|
16
|
+
esac
|
14
17
|
|
15
18
|
# don't put duplicate lines or lines starting with space in the history.
|
16
19
|
# See bash(1) for more options
|
@@ -35,13 +38,13 @@ shopt -s checkwinsize
|
|
35
38
|
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
36
39
|
|
37
40
|
# set variable identifying the chroot you work in (used in the prompt below)
|
38
|
-
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
|
41
|
+
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
39
42
|
debian_chroot=$(cat /etc/debian_chroot)
|
40
43
|
fi
|
41
44
|
|
42
45
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
43
46
|
case "$TERM" in
|
44
|
-
xterm-color) color_prompt=yes;;
|
47
|
+
xterm-color|*-256color) color_prompt=yes;;
|
45
48
|
esac
|
46
49
|
|
47
50
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
@@ -88,6 +91,9 @@ if [ -x /usr/bin/dircolors ]; then
|
|
88
91
|
alias egrep='egrep --color=auto'
|
89
92
|
fi
|
90
93
|
|
94
|
+
# colored GCC warnings and errors
|
95
|
+
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
96
|
+
|
91
97
|
# some more ls aliases
|
92
98
|
alias ll='ls -alF'
|
93
99
|
alias la='ls -A'
|
@@ -109,12 +115,17 @@ fi
|
|
109
115
|
# enable programmable completion features (you don't need to enable
|
110
116
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
111
117
|
# sources /etc/bash.bashrc).
|
112
|
-
if
|
118
|
+
if ! shopt -oq posix; then
|
119
|
+
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
120
|
+
. /usr/share/bash-completion/bash_completion
|
121
|
+
elif [ -f /etc/bash_completion ]; then
|
113
122
|
. /etc/bash_completion
|
114
123
|
fi
|
115
124
|
|
116
125
|
# Best practice dictates that this should be moved to .bash_profile
|
117
126
|
# http://askubuntu.com/questions/121073/why-bash-profile-is-not-getting-sourced-when-opening-a-terminal
|
118
127
|
# but this works ok for now, it just has to be in two places. It should be done at the end of this file.
|
119
|
-
PATH
|
128
|
+
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
|
120
129
|
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
|
130
|
+
|
131
|
+
fi
|
data/lib/pvcglue/version.rb
CHANGED
data/pvcglue.gemspec
CHANGED
@@ -4,30 +4,35 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'pvcglue/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'pvcglue'
|
8
8
|
spec.version = Pvcglue::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['T. Andrew Lyric']
|
10
|
+
spec.email = ['talyric@gmail.com']
|
11
11
|
spec.description = %q{PVC_Glue description}
|
12
12
|
spec.summary = %q{PVC_Glue summary}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = 'https://github.com/talyric/pvcglue'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
21
|
+
spec.add_development_dependency 'bundler', '>= 1.3.0', '< 2.0'
|
22
|
+
spec.add_development_dependency 'rake', '~> 10.1'
|
23
23
|
|
24
|
-
spec.add_dependency
|
25
|
-
spec.add_dependency
|
26
|
-
spec.add_dependency
|
24
|
+
spec.add_dependency 'thor', '~> 0.19', '>= 0.19.1'
|
25
|
+
spec.add_dependency 'toml-rb', '~> 0.3', '>= 0.3.15'
|
26
|
+
spec.add_dependency 'orca', '= 0.4', '= 0.4.0'
|
27
27
|
spec.add_dependency 'capistrano', '~> 3.4.0', '>= 3.4.1'
|
28
28
|
spec.add_dependency 'capistrano-bundler', '~> 1.1', '>= 1.1.1'
|
29
29
|
spec.add_dependency 'capistrano-rails', '~> 1.1', '>= 1.1.1'
|
30
30
|
spec.add_dependency 'capistrano-rvm', '~> 0.1', '>= 0.1.1'
|
31
|
-
spec.add_dependency
|
31
|
+
spec.add_dependency 'sshkit', '~> 1.3', '>= 1.3.0'
|
32
|
+
spec.add_dependency 'awesome_print'
|
33
|
+
spec.add_dependency 'hashie'
|
34
|
+
spec.add_dependency 'droplet_kit'
|
35
|
+
spec.add_dependency 'paint'
|
36
|
+
spec.add_dependency 'pry'
|
32
37
|
|
33
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pvcglue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Andrew Lyric
|
7
|
+
- T. Andrew Lyric
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -70,20 +70,20 @@ dependencies:
|
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '0.
|
73
|
+
version: '0.3'
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.
|
76
|
+
version: 0.3.15
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '0.
|
83
|
+
version: '0.3'
|
84
84
|
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version: 0.
|
86
|
+
version: 0.3.15
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: orca
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,6 +204,76 @@ dependencies:
|
|
204
204
|
- - ">="
|
205
205
|
- !ruby/object:Gem::Version
|
206
206
|
version: 1.3.0
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: awesome_print
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - ">="
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
type: :runtime
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - ">="
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '0'
|
221
|
+
- !ruby/object:Gem::Dependency
|
222
|
+
name: hashie
|
223
|
+
requirement: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - ">="
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '0'
|
228
|
+
type: :runtime
|
229
|
+
prerelease: false
|
230
|
+
version_requirements: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '0'
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: droplet_kit
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ">="
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
type: :runtime
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - ">="
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0'
|
249
|
+
- !ruby/object:Gem::Dependency
|
250
|
+
name: paint
|
251
|
+
requirement: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - ">="
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
type: :runtime
|
257
|
+
prerelease: false
|
258
|
+
version_requirements: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
- !ruby/object:Gem::Dependency
|
264
|
+
name: pry
|
265
|
+
requirement: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '0'
|
270
|
+
type: :runtime
|
271
|
+
prerelease: false
|
272
|
+
version_requirements: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - ">="
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '0'
|
207
277
|
description: PVC_Glue description
|
208
278
|
email:
|
209
279
|
- talyric@gmail.com
|
@@ -213,6 +283,8 @@ extensions: []
|
|
213
283
|
extra_rdoc_files: []
|
214
284
|
files:
|
215
285
|
- ".gitignore"
|
286
|
+
- ".ruby-gemset"
|
287
|
+
- ".ruby-version"
|
216
288
|
- Gemfile
|
217
289
|
- LICENSE.txt
|
218
290
|
- README.md
|
@@ -227,36 +299,66 @@ files:
|
|
227
299
|
- lib/pvcglue/cli.rb
|
228
300
|
- lib/pvcglue/cloud.rb
|
229
301
|
- lib/pvcglue/configuration.rb
|
302
|
+
- lib/pvcglue/connection.rb
|
303
|
+
- lib/pvcglue/custom_hashie.rb
|
230
304
|
- lib/pvcglue/db.rb
|
231
305
|
- lib/pvcglue/deploy.rb
|
306
|
+
- lib/pvcglue/digital_ocean.rb
|
232
307
|
- lib/pvcglue/env.rb
|
233
308
|
- lib/pvcglue/local.rb
|
234
309
|
- lib/pvcglue/manager.rb
|
310
|
+
- lib/pvcglue/minion.rb
|
235
311
|
- lib/pvcglue/monit.rb
|
236
312
|
- lib/pvcglue/nodes.rb
|
313
|
+
- lib/pvcglue/old_packages/bootstrap.rb
|
314
|
+
- lib/pvcglue/old_packages/env.rb
|
315
|
+
- lib/pvcglue/old_packages/firewall.rb
|
316
|
+
- lib/pvcglue/old_packages/manager.rb
|
317
|
+
- lib/pvcglue/old_packages/monit-bootstrap.rb
|
318
|
+
- lib/pvcglue/old_packages/monit-web.rb
|
319
|
+
- lib/pvcglue/old_packages/nginx.rb
|
320
|
+
- lib/pvcglue/old_packages/nodejs.rb
|
321
|
+
- lib/pvcglue/old_packages/passenger.rb
|
322
|
+
- lib/pvcglue/old_packages/postgresql.rb
|
323
|
+
- lib/pvcglue/old_packages/role_db.rb
|
324
|
+
- lib/pvcglue/old_packages/role_lb.rb
|
325
|
+
- lib/pvcglue/old_packages/role_memcached.rb
|
326
|
+
- lib/pvcglue/old_packages/role_redis.rb
|
327
|
+
- lib/pvcglue/old_packages/role_web.rb
|
328
|
+
- lib/pvcglue/old_packages/rvm.rb
|
329
|
+
- lib/pvcglue/old_packages/timezone.rb
|
330
|
+
- lib/pvcglue/old_packages/ubuntu.rb
|
237
331
|
- lib/pvcglue/packages.rb
|
238
|
-
- lib/pvcglue/packages/
|
239
|
-
- lib/pvcglue/packages/
|
332
|
+
- lib/pvcglue/packages/apt.rb
|
333
|
+
- lib/pvcglue/packages/apt_repos.rb
|
334
|
+
- lib/pvcglue/packages/apt_update.rb
|
335
|
+
- lib/pvcglue/packages/apt_upgrade.rb
|
336
|
+
- lib/pvcglue/packages/authorized_keys.rb
|
337
|
+
- lib/pvcglue/packages/bundler.rb
|
338
|
+
- lib/pvcglue/packages/dir_base.rb
|
339
|
+
- lib/pvcglue/packages/dir_shared.rb
|
240
340
|
- lib/pvcglue/packages/firewall.rb
|
341
|
+
- lib/pvcglue/packages/load_balancer.rb
|
342
|
+
- lib/pvcglue/packages/maintenance_mode.rb
|
241
343
|
- lib/pvcglue/packages/manager.rb
|
242
|
-
- lib/pvcglue/packages/monit-bootstrap.rb
|
243
|
-
- lib/pvcglue/packages/monit-web.rb
|
244
|
-
- lib/pvcglue/packages/nginx.rb
|
245
|
-
- lib/pvcglue/packages/nodejs.rb
|
246
|
-
- lib/pvcglue/packages/passenger.rb
|
247
344
|
- lib/pvcglue/packages/postgresql.rb
|
248
|
-
- lib/pvcglue/packages/
|
249
|
-
- lib/pvcglue/packages/
|
250
|
-
- lib/pvcglue/packages/role_memcached.rb
|
251
|
-
- lib/pvcglue/packages/role_redis.rb
|
252
|
-
- lib/pvcglue/packages/role_web.rb
|
345
|
+
- lib/pvcglue/packages/roles.rb
|
346
|
+
- lib/pvcglue/packages/ruby.rb
|
253
347
|
- lib/pvcglue/packages/rvm.rb
|
254
|
-
- lib/pvcglue/packages/
|
255
|
-
- lib/pvcglue/packages/
|
348
|
+
- lib/pvcglue/packages/secrets.rb
|
349
|
+
- lib/pvcglue/packages/ssh_key_check.rb
|
350
|
+
- lib/pvcglue/packages/ssl.rb
|
351
|
+
- lib/pvcglue/packages/ssl_acme.rb
|
352
|
+
- lib/pvcglue/packages/swap.rb
|
353
|
+
- lib/pvcglue/packages/unattended_upgrades.rb
|
354
|
+
- lib/pvcglue/packages/users.rb
|
355
|
+
- lib/pvcglue/packages/web.rb
|
256
356
|
- lib/pvcglue/pvcify.rb
|
257
357
|
- lib/pvcglue/railtie.rb
|
258
358
|
- lib/pvcglue/ssl.rb
|
359
|
+
- lib/pvcglue/stack.rb
|
259
360
|
- lib/pvcglue/templates/20auto-upgrades.erb
|
361
|
+
- lib/pvcglue/templates/50unattended-upgrades.erb
|
260
362
|
- lib/pvcglue/templates/authorized_keys.erb
|
261
363
|
- lib/pvcglue/templates/capfile.erb
|
262
364
|
- lib/pvcglue/templates/database.yml.erb
|
@@ -266,6 +368,7 @@ files:
|
|
266
368
|
- lib/pvcglue/templates/hosts.erb
|
267
369
|
- lib/pvcglue/templates/lb.nginx.conf.erb
|
268
370
|
- lib/pvcglue/templates/lb.sites-enabled.erb
|
371
|
+
- lib/pvcglue/templates/letsencrypt-webroot.erb
|
269
372
|
- lib/pvcglue/templates/maintenance_mode.erb
|
270
373
|
- lib/pvcglue/templates/memcached.conf.erb
|
271
374
|
- lib/pvcglue/templates/monit.app.monitrc.erb
|
@@ -309,7 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
309
412
|
version: '0'
|
310
413
|
requirements: []
|
311
414
|
rubyforge_project:
|
312
|
-
rubygems_version: 2.
|
415
|
+
rubygems_version: 2.6.8
|
313
416
|
signing_key:
|
314
417
|
specification_version: 4
|
315
418
|
summary: PVC_Glue summary
|