dlss-capistrano 3.11.1 → 4.0.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/README.md +11 -10
- data/dlss-capistrano.gemspec +1 -1
- data/lib/dlss/capistrano/tasks/remote_execute.rake +9 -0
- metadata +3 -3
- data/lib/dlss/capistrano/tasks/bundle_config.rake +0 -53
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 931006fc1c1c2b1bd0edad5c66284a68646ded0b1eb86977a9f456f5967d0aa1
|
4
|
+
data.tar.gz: 7d9be758e297514f2783c09ead222dd3a5ff56cdb7832a98c2582c4774583660
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8455409ed588234cb13623dd80231a6dfb8976f1d17a2de2c46086f7327d5616920fd4b3724d7d928dc4bdf0dbe0ffc3ec88668177c94c85f886ee047dc69a16
|
7
|
+
data.tar.gz: 1a7e14b5f5e83dba8b59f85f22074e76b4298a8e43756dc4b6fe57e9de9639c89d60c7f9a4bf15a6ae17043bf6690640b1d4be3d9bea87754433b284276dce33
|
data/README.md
CHANGED
@@ -6,20 +6,21 @@ This gem provides Capistrano deployment tasks used by Stanford Libraries' Digita
|
|
6
6
|
|
7
7
|
## Included Tasks
|
8
8
|
|
9
|
-
###
|
9
|
+
### Remote Execution
|
10
10
|
|
11
|
-
|
11
|
+
Sometimes you want to execute a command on all boxes in a given environment, and dlss-capistrano's got your back:
|
12
12
|
|
13
|
-
```
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
```shell
|
14
|
+
$ cap qa remote_execute["ps -ef | grep rolling | grep -v grep"]
|
15
|
+
00:00 remote_execute
|
16
|
+
ps -ef | grep rolling | grep -v grep
|
17
|
+
ps -ef | grep rolling | grep -v grep
|
18
|
+
dor-indexing-app-qa-a.stanford.edu:
|
19
|
+
dor_ind+ 9159 1 20 Feb18 ? 14:15:03 rolling index
|
20
|
+
dor-indexing-app-qa-b.stanford.edu:
|
21
|
+
dor_ind+ 29689 1 20 Feb18 ? 14:24:53 rolling index
|
19
22
|
```
|
20
23
|
|
21
|
-
Note that only `bundler2_config_use_hook` **must** be set in order to use this functionality.
|
22
|
-
|
23
24
|
### Sidekiq symlink
|
24
25
|
|
25
26
|
Every time the version of Sidekiq or Ruby changes, a corresponding Puppet PR must be made in order to update the XSendFilePath that allows Apache to access the bundled Sidekiq gem's assets. dlss-capistrano provides a hook to create a symlink to the bundled Sidekiq to avoid having to do this:
|
data/dlss-capistrano.gemspec
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
desc "execute command on all servers"
|
2
|
+
task :remote_execute, :command do |_task, args|
|
3
|
+
raise ArgumentError, 'remote_execute task requires an argument' unless args[:command]
|
4
|
+
|
5
|
+
on roles(:all) do |host|
|
6
|
+
info args[:command] if fetch(:log_level) == :debug
|
7
|
+
info "#{host}:\n#{capture(args[:command])}"
|
8
|
+
end
|
9
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dlss-capistrano
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-02-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -87,9 +87,9 @@ files:
|
|
87
87
|
- lib/dlss/capistrano.rb
|
88
88
|
- lib/dlss/capistrano/resque_pool.rb
|
89
89
|
- lib/dlss/capistrano/resque_pool/tasks/resque_pool.rake
|
90
|
-
- lib/dlss/capistrano/tasks/bundle_config.rake
|
91
90
|
- lib/dlss/capistrano/tasks/bundled_sidekiq.rake
|
92
91
|
- lib/dlss/capistrano/tasks/deployed_branch.rake
|
92
|
+
- lib/dlss/capistrano/tasks/remote_execute.rake
|
93
93
|
- lib/dlss/capistrano/tasks/sidekiq_systemd.rake
|
94
94
|
- lib/dlss/capistrano/tasks/sneakers_systemd.rake
|
95
95
|
- lib/dlss/capistrano/tasks/ssh.rake
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# These tasks exist because capistrano-bundler does not yet have a built-in
|
4
|
-
# mechanism for configuring bundler 2 without deprecation warnings. We can dump
|
5
|
-
# this if/when https://github.com/capistrano/bundler/issues/115 is resolved.
|
6
|
-
|
7
|
-
def default_bundle_path
|
8
|
-
Pathname.new("#{shared_path}/bundle")
|
9
|
-
end
|
10
|
-
|
11
|
-
namespace :load do
|
12
|
-
task :defaults do
|
13
|
-
# This provides opt-in behavior. Do nothing if not requested.
|
14
|
-
set :bundler2_config_use_hook, fetch(:bundler2_config_use_hook, false)
|
15
|
-
set :bundler2_config_roles, fetch(:bundler2_config_roles, [:app])
|
16
|
-
set :bundler2_config_deployment, fetch(:bundler2_config_deployment, true)
|
17
|
-
set :bundler2_config_without, fetch(:bundler2_config_without, 'development:test')
|
18
|
-
# NOTE: `shared_path` is not defined at this point, so we can't set the default value to `default_bundle_path`
|
19
|
-
set :bundler2_config_path, fetch(:bundler2_config_path, nil)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# Integrate bundle config hook into Capistrano
|
24
|
-
namespace :deploy do
|
25
|
-
before :starting, :add_bundler2_config_hook do
|
26
|
-
invoke 'bundler2:add_hook' if fetch(:bundler2_config_use_hook)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
namespace :bundler2 do
|
31
|
-
# NOTE: no `desc` here to avoid publishing this task in the `cap -T` list
|
32
|
-
task :add_hook do
|
33
|
-
# Override capistrano-bundler settings
|
34
|
-
# HT: https://github.com/capistrano/bundler/issues/115#issuecomment-616570236
|
35
|
-
set :bundle_flags, '--quiet' # this unsets --deployment, see details in config_bundler task details
|
36
|
-
set :bundle_path, nil
|
37
|
-
set :bundle_without, nil
|
38
|
-
|
39
|
-
before 'bundler:install', 'bundler2:config'
|
40
|
-
end
|
41
|
-
|
42
|
-
# NOTE: This task lacks a `desc` to avoid publishing it, since we do not
|
43
|
-
# foresee needing to run this task manually. It should run via hook.
|
44
|
-
#
|
45
|
-
# Configure bundler 2 without using deprecated arguments (overrides capistrano-bundler
|
46
|
-
task :config do
|
47
|
-
on roles fetch(:bundler2_config_roles) do
|
48
|
-
execute "bundle config --local deployment #{fetch(:bundler2_config_deployment)}"
|
49
|
-
execute "bundle config --local without '#{fetch(:bundler2_config_without)}'"
|
50
|
-
execute "bundle config --local path #{fetch(:bundler2_config_path) || default_bundle_path}"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|