capistrano-exfel 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -1
- data/Gemfile +1 -1
- data/README.md +6 -6
- data/capistrano-exfel.gemspec +14 -14
- data/lib/capistrano/exfel/version.rb +1 -1
- data/lib/capistrano/tasks/apache.rake +12 -10
- data/lib/capistrano/tasks/app_home.rake +8 -8
- data/lib/capistrano/tasks/database.rake +2 -2
- data/lib/capistrano/tasks/secrets.rake +2 -2
- data/lib/capistrano/tasks/util.rake +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f39bbd681a6dfe262623018dbc25c2f21b1067bd0941ab5fa15968d307818b4
|
4
|
+
data.tar.gz: 6f4b167cd5fb9d9f19fad48c932280607c2a1703aabce99fae2c2a78197b061e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df06350ebf4be066955c1c913a40b06ccee33d170d4b5bbae5b4e3c61da5647573e022c5f5f123e9cafc2ec0309d0dae737f0603e1779761c8c754bb6fda7291
|
7
|
+
data.tar.gz: 424dfaf2e183e4c7b8ddb0df286c8fc8dc0724a759034b1096b2ae2bd91bb97322b188cf6da41dc6f503a52209a56004e9c1c56e16e26a60e77e009e05337437
|
data/.rubocop.yml
CHANGED
@@ -22,8 +22,12 @@ Style/Lambda:
|
|
22
22
|
#
|
23
23
|
# Block has too many lines.
|
24
24
|
Metrics/BlockLength:
|
25
|
-
Max:
|
25
|
+
Max: 200 # Default 25
|
26
26
|
|
27
27
|
# Use meaningful heredoc delimiters.
|
28
28
|
Naming/HeredocDelimiterNaming:
|
29
29
|
Enabled: false
|
30
|
+
|
31
|
+
# This gem doesn't need to be dependent on a specific Ruby version
|
32
|
+
RequiredRubyVersion:
|
33
|
+
Enabled: false
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
# Capistrano::Exfel
|
2
2
|
|
3
3
|
Deploys Ruby on Rails Applications in EXFEL VMs using Capistrano3 throw username/password authentication.
|
4
|
-
The standard EXFEL VMs consist of
|
5
|
-
Installation of Phusion Passenger and RVM are also required
|
4
|
+
The standard EXFEL VMs consist of CentOS 7, Alma Linux 8/9 or Ubuntu 20/22 with Apache.
|
5
|
+
Installation of Phusion Passenger and RVM are also required for this gem.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
9
|
Add these lines to your application's Gemfile:
|
10
10
|
|
11
11
|
# Use Capistrano for deployment
|
12
|
-
gem 'capistrano', '3.
|
13
|
-
gem 'capistrano-exfel', '0.
|
14
|
-
gem 'capistrano-rails', '1.
|
12
|
+
gem 'capistrano', '3.17.3', require: false
|
13
|
+
gem 'capistrano-exfel', '0.4.0', require: false
|
14
|
+
gem 'capistrano-rails', '1.6.2', require: false
|
15
15
|
gem 'capistrano-rvm', '0.1.2', require: false
|
16
16
|
|
17
17
|
|
@@ -117,7 +117,7 @@ set :repo_url, 'exfl_git_server:/my_app_repo_path' # 'git@example.com:me/my_repo
|
|
117
117
|
|
118
118
|
# RVM related information
|
119
119
|
# set :rvm_type, :system
|
120
|
-
set :rvm_ruby_version, '
|
120
|
+
set :rvm_ruby_version, '3.1.3' # If not specified will ask for it
|
121
121
|
# set :rvm_roles, [:app, :web]
|
122
122
|
```
|
123
123
|
|
data/capistrano-exfel.gemspec
CHANGED
@@ -5,21 +5,21 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require 'capistrano/exfel/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name
|
9
|
-
spec.version
|
10
|
-
spec.authors
|
11
|
-
spec.email
|
12
|
-
spec.summary
|
13
|
-
spec.description
|
14
|
-
|
15
|
-
|
16
|
-
spec.homepage
|
17
|
-
spec.license
|
8
|
+
spec.name = 'capistrano-exfel'
|
9
|
+
spec.version = Capistrano::Exfel::VERSION
|
10
|
+
spec.authors = ['Luis Maia', 'Maurizio Manetti']
|
11
|
+
spec.email = %w[luisgoncalo.maia@gmail.com maurizio.manetti@xfel.eu]
|
12
|
+
spec.summary = 'Deploy Ruby on Rails 4, 5, 6 and 7 Applications in EXFEL Virtual Machines'
|
13
|
+
spec.description = 'Deployment of Ruby on Rails Applications in EXFEL Virtual Machines ' \
|
14
|
+
'(CentOS 7 + Apache + RVM + Phusion Passenger) ' \
|
15
|
+
'using Capistrano3 and LDAP'
|
16
|
+
spec.homepage = 'https://github.com/luismaia/capistrano-exfel'
|
17
|
+
spec.license = 'MIT'
|
18
18
|
|
19
|
-
spec.files
|
20
|
-
spec.executables
|
21
|
-
spec.test_files
|
22
|
-
spec.require_paths
|
19
|
+
spec.files = `git ls-files -z`.split("\x0")
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
spec.require_paths = ['lib']
|
23
23
|
|
24
24
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
25
25
|
spec.add_development_dependency 'rake', '~> 13.0'
|
@@ -17,7 +17,7 @@ namespace :apache do
|
|
17
17
|
on roles(:web) do
|
18
18
|
info 'In task apache:chkconfig_on'
|
19
19
|
|
20
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
20
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
21
21
|
|
22
22
|
debug '#' * 50
|
23
23
|
|
@@ -32,7 +32,7 @@ namespace :apache do
|
|
32
32
|
desc 'Restart Apache (httpd) service'
|
33
33
|
task :restart do
|
34
34
|
on roles(:web) do
|
35
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
35
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
36
36
|
|
37
37
|
debug '#' * 50
|
38
38
|
|
@@ -62,7 +62,7 @@ namespace :apache do
|
|
62
62
|
desc 'Create Apache multi-site configuration folder'
|
63
63
|
task :create_apache_sites_folder do
|
64
64
|
on roles(:app) do
|
65
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
65
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
66
66
|
|
67
67
|
debug '#' * 50
|
68
68
|
debug 'Create Apache multi-site configuration folder'
|
@@ -78,7 +78,7 @@ namespace :apache do
|
|
78
78
|
desc 'Configure Apache modules'
|
79
79
|
task :configure_apache_modules do
|
80
80
|
on roles(:app) do
|
81
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
81
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
82
82
|
|
83
83
|
debug '#' * 50
|
84
84
|
debug 'Configure (HTTP) Apache Passenger module'
|
@@ -91,7 +91,8 @@ namespace :apache do
|
|
91
91
|
|
92
92
|
upload! StringIO.new(File.read(passenger_file)), fetch(:tmp_passenger_file).to_s
|
93
93
|
|
94
|
-
|
94
|
+
rvm_passenger_root_cmd = "/usr/local/rvm/bin/rvm #{fetch(:rvm_ruby_version)} do passenger-config --root"
|
95
|
+
passenger_root = get_command_output(rvm_passenger_root_cmd)
|
95
96
|
ruby_path = "/#{passenger_root.split('/')[1..5].join('/')}/wrappers/ruby"
|
96
97
|
|
97
98
|
debug "sed -i 's|<<PASSENGER_ROOT>>|#{passenger_root}|g' #{fetch(:tmp_passenger_file)}"
|
@@ -120,7 +121,7 @@ namespace :apache do
|
|
120
121
|
desc 'Configure (HTTPS) Apache Application configuration files'
|
121
122
|
task :configure_app_ssl_conf_file do
|
122
123
|
on roles(:app), in: :sequence do
|
123
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
124
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
124
125
|
|
125
126
|
debug '#' * 50
|
126
127
|
debug 'Configure (HTTPS) Apache Application configuration files'
|
@@ -132,7 +133,8 @@ namespace :apache do
|
|
132
133
|
debug "chmod g+w #{fetch(:shared_apache_conf_ssl_file)}"
|
133
134
|
execute "chmod g+w #{fetch(:shared_apache_conf_ssl_file)}"
|
134
135
|
|
135
|
-
|
136
|
+
rvm_passenger_root_cmd = "/usr/local/rvm/bin/rvm #{fetch(:rvm_ruby_version)} do passenger-config --root"
|
137
|
+
passenger_root = get_command_output(rvm_passenger_root_cmd)
|
136
138
|
ruby_path = "/#{passenger_root.split('/')[1..5].join('/')}/wrappers/ruby"
|
137
139
|
|
138
140
|
execute "sed -i 's/<<APPLICATION_NAME>>/#{fetch(:app_name_uri)}/g' #{fetch(:shared_apache_conf_ssl_file)}"
|
@@ -149,7 +151,7 @@ namespace :apache do
|
|
149
151
|
desc 'Replace CentOS 7 default httpd.conf and ssl.conf file with our version'
|
150
152
|
task :replace_apache_defaults do
|
151
153
|
on roles(:web) do
|
152
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
154
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
153
155
|
|
154
156
|
debug '#' * 50
|
155
157
|
debug 'Update httpd.conf and ssl.conf'
|
@@ -236,7 +238,7 @@ namespace :apache do
|
|
236
238
|
desc 'Create Apache configuration files shared folder'
|
237
239
|
task :create_apache_shared_folder do
|
238
240
|
on roles(:app) do
|
239
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
241
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
240
242
|
|
241
243
|
debug '#' * 50
|
242
244
|
debug 'Create Apache configuration files shared folder'
|
@@ -254,7 +256,7 @@ namespace :apache do
|
|
254
256
|
desc 'Create symbolic link to application public folder in Apache DocumentRoot folder'
|
255
257
|
task :create_symbolic_link do
|
256
258
|
on roles(:web), in: :sequence do
|
257
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
259
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
258
260
|
|
259
261
|
info '#' * 50
|
260
262
|
info 'Creating application symbolic link'
|
@@ -11,7 +11,7 @@ namespace :app_home do
|
|
11
11
|
desc 'Create application deploy folders on server and give it the correct permissions'
|
12
12
|
task :create_deploy_folder do
|
13
13
|
on roles(:app), in: :sequence do
|
14
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
14
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
15
15
|
|
16
16
|
debug '#' * 50
|
17
17
|
|
@@ -31,7 +31,7 @@ namespace :app_home do
|
|
31
31
|
desc 'Create shared folder on server DEPLOY folder and give it the correct permissions'
|
32
32
|
task :create_shared_folder do
|
33
33
|
on roles(:app), in: :sequence do
|
34
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
34
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
35
35
|
|
36
36
|
debug '#' * 50
|
37
37
|
|
@@ -74,7 +74,7 @@ namespace :app_home do
|
|
74
74
|
task :correct_shared_permissions do
|
75
75
|
on roles(:app), in: :sequence do
|
76
76
|
within release_path do
|
77
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
77
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
78
78
|
|
79
79
|
debug '#' * 50
|
80
80
|
|
@@ -110,7 +110,7 @@ namespace :app_home do
|
|
110
110
|
task :correct_public_folder_permissions do
|
111
111
|
on roles(:app) do
|
112
112
|
within release_path do
|
113
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
113
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
114
114
|
|
115
115
|
debug '#' * 50
|
116
116
|
set :public_folder_path, "#{release_path}/public"
|
@@ -147,7 +147,7 @@ namespace :app_home do
|
|
147
147
|
task :deploy_first_time_start_msg do
|
148
148
|
on roles(:msg) do
|
149
149
|
info '#' * 100
|
150
|
-
info '#' * 10
|
150
|
+
info "#{'#' * 10} => Start Application first time deployment..."
|
151
151
|
info '#' * 100
|
152
152
|
end
|
153
153
|
end
|
@@ -155,7 +155,7 @@ namespace :app_home do
|
|
155
155
|
task :deploy_start_msg do
|
156
156
|
on roles(:msg) do
|
157
157
|
info '#' * 100
|
158
|
-
info '#' * 10
|
158
|
+
info "#{'#' * 10} => Start Application re-deployment..."
|
159
159
|
info '#' * 100
|
160
160
|
end
|
161
161
|
end
|
@@ -163,7 +163,7 @@ namespace :app_home do
|
|
163
163
|
task :deploy_success_msg do
|
164
164
|
on roles(:msg) do
|
165
165
|
info '#' * 100
|
166
|
-
info '#' * 10
|
166
|
+
info "#{'#' * 10} => Application Successfully deployed..."
|
167
167
|
info '#' * 100
|
168
168
|
info '#' * 10 + " => visit: #{fetch(:app_domain)}#{fetch(:app_name_uri)}"
|
169
169
|
info '#' * 100
|
@@ -176,7 +176,7 @@ namespace :app_home do
|
|
176
176
|
###
|
177
177
|
task :restart do
|
178
178
|
on roles(:app) do
|
179
|
-
info '#' * 10
|
179
|
+
info "#{'#' * 10} Touching restart.txt..."
|
180
180
|
execute :touch, release_path.join('tmp/restart.txt')
|
181
181
|
end
|
182
182
|
end
|
@@ -56,7 +56,7 @@ namespace :database do
|
|
56
56
|
# desc 'Correct database.yml file permissions before change the file'
|
57
57
|
task :set_permissions_pre_update do
|
58
58
|
on roles(:app) do
|
59
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
59
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
60
60
|
|
61
61
|
debug '#' * 50
|
62
62
|
|
@@ -71,7 +71,7 @@ namespace :database do
|
|
71
71
|
# desc 'Correct database.yml file permissions after change the file'
|
72
72
|
task :set_permissions_post_update do
|
73
73
|
on roles(:app) do
|
74
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
74
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
75
75
|
|
76
76
|
debug '#' * 50
|
77
77
|
|
@@ -75,7 +75,7 @@ namespace :secrets do
|
|
75
75
|
# desc 'Correct secrets.yml file permissions before change the file'
|
76
76
|
task :set_permissions_pre_update do
|
77
77
|
on roles(:app) do
|
78
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
78
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
79
79
|
|
80
80
|
debug '#' * 50
|
81
81
|
|
@@ -90,7 +90,7 @@ namespace :secrets do
|
|
90
90
|
# desc 'Correct secrets.yml file permissions after change the file'
|
91
91
|
task :set_permissions_post_update do
|
92
92
|
on roles(:app) do
|
93
|
-
sudo_cmd = "echo #{fetch(:password)} | sudo -S"
|
93
|
+
sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
|
94
94
|
|
95
95
|
debug '#' * 50
|
96
96
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-exfel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis Maia
|
8
8
|
- Maurizio Manetti
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-06-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -79,7 +79,7 @@ homepage: https://github.com/luismaia/capistrano-exfel
|
|
79
79
|
licenses:
|
80
80
|
- MIT
|
81
81
|
metadata: {}
|
82
|
-
post_install_message:
|
82
|
+
post_install_message:
|
83
83
|
rdoc_options: []
|
84
84
|
require_paths:
|
85
85
|
- lib
|
@@ -94,8 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '0'
|
96
96
|
requirements: []
|
97
|
-
rubygems_version: 3.
|
98
|
-
signing_key:
|
97
|
+
rubygems_version: 3.3.26
|
98
|
+
signing_key:
|
99
99
|
specification_version: 4
|
100
|
-
summary: Deploy Ruby on Rails 4 and
|
100
|
+
summary: Deploy Ruby on Rails 4, 5, 6 and 7 Applications in EXFEL Virtual Machines
|
101
101
|
test_files: []
|