capistrano-exfel 0.3.0 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d086fd4c9e4f16c7f68d37876de7ef24704e010fc19a41faec2447ecc86072b2
4
- data.tar.gz: 01e8177b84dc63483b996d26e4ebd8cd7589ff7d0c6aaf1b6ff533f60d76ed56
3
+ metadata.gz: db4bdb4541437adbee7068c17988232ed83871f17ca7131eaa64e2371aeabdc3
4
+ data.tar.gz: c58b66065fc1232c637548ac8e982fdf159aa7a8de870a6b966d7b8add01b971
5
5
  SHA512:
6
- metadata.gz: 83c826336eef52236f1d1f264a1a355916652023b583858e4fb949e6a1b7dd2b14203db5d8b37286aff507ad711df99f31eac896bee8403ed29962a1d3414b1b
7
- data.tar.gz: 517745ce8bd5d2646f460582c48f4145749df2334ed17f177e99760ff92c00278546e835a3417e021748b36a00d5ef883784031c25d3c956beaacb64b3a9d14a
6
+ metadata.gz: 8da33a59375c6545637eb879a71cc69e7c2dbb3bb6de605a3928cfa1873a8fa3273a4f6935e22db33dca108532cdd7a03112939670461cc7e4f5a1679d75ca29
7
+ data.tar.gz: 212dfe77a050b4967fe7460bf92fd14c81dfd38ee966cae3483394428a85cc8940b6c1438cb957205b70b362cd904b0ea1d2709ac61b519c690ee32bba156abd
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: 160 # Default 25
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
@@ -6,4 +6,4 @@ source 'https://rubygems.org'
6
6
  gemspec
7
7
 
8
8
  # Use Rubocop to validate ruby code syntax
9
- gem 'rubocop', '0.79.0', require: false, group: :development
9
+ gem 'rubocop', '1.64.1', require: false, group: :development
data/README.md CHANGED
@@ -1,7 +1,7 @@
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 Scientific Linux 6, CentOS 7 or Ubuntu 14 with Apache.
4
+ The standard EXFEL VMs for web applications is Ubuntu 22 with Apache web server.
5
5
  Installation of Phusion Passenger and RVM are also required to this gem.
6
6
 
7
7
  ## Installation
@@ -9,9 +9,9 @@ Installation of Phusion Passenger and RVM are also required to this gem.
9
9
  Add these lines to your application's Gemfile:
10
10
 
11
11
  # Use Capistrano for deployment
12
- gem 'capistrano', '3.11.2', require: false
13
- gem 'capistrano-exfel', '0.3.0', require: false
14
- gem 'capistrano-rails', '1.4.0', require: false
12
+ gem 'capistrano', '3.18.1', require: false
13
+ gem 'capistrano-exfel', '0.5.0', require: false
14
+ gem 'capistrano-rails', '1.6.3', require: false
15
15
  gem 'capistrano-rvm', '0.1.2', require: false
16
16
 
17
17
 
@@ -28,20 +28,10 @@ $ gem install capistrano-exfel
28
28
 
29
29
  ## Usage
30
30
 
31
- Add this line to your `Capfile` for Scientific Linux 6 machines:
32
-
33
- # Load Capistrano Exfel Scientific Linux 6 tasks
34
- require 'capistrano/exfel/sl6'
35
-
36
- Add this line to your `Capfile` for CentOS 7 machines:
37
-
38
- # Load Capistrano Exfel CentOS tasks
39
- require 'capistrano/exfel/co7'
40
-
41
- Add this line to your `Capfile` for Ubuntu 14 machines:
31
+ Add this line to your `Capfile` for Ubuntu 22 machines:
42
32
 
43
33
  # Load Ubuntu 14 tasks
44
- require 'capistrano/exfel/ub14'
34
+ require 'capistrano/exfel/ubuntu22'
45
35
 
46
36
 
47
37
  This gem will reuse `capistrano-rails` and `capistrano-rvm` tasks to build the following tasks:
@@ -117,7 +107,7 @@ set :repo_url, 'exfl_git_server:/my_app_repo_path' # 'git@example.com:me/my_repo
117
107
 
118
108
  # RVM related information
119
109
  # set :rvm_type, :system
120
- set :rvm_ruby_version, '2.4.4' # If not specified will ask for it
110
+ set :rvm_ruby_version, '3.1.3' # If not specified will ask for it
121
111
  # set :rvm_roles, [:app, :web]
122
112
  ```
123
113
 
Binary file
@@ -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 = '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 and 5 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'
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 = `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']
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'
@@ -3,6 +3,6 @@
3
3
  module Capistrano
4
4
  # Capistrano::Exfel version information
5
5
  module Exfel
6
- VERSION = '0.3.0'
6
+ VERSION = '0.5.0'
7
7
  end
8
8
  end
@@ -11,9 +11,9 @@
11
11
  RackBaseURI /<<APPLICATION_NAME>>
12
12
  RailsEnv <<ENVIRONMENT>>
13
13
 
14
- PassengerUser nobody
14
+ PassengerUser www-data
15
15
  # CentOS: nobody / Ubuntu/Debian: nogroup
16
- PassengerGroup nobody
16
+ PassengerGroup nogroup
17
17
 
18
18
  # which ruby version to use
19
19
  PassengerRuby <<RUBY_PATH>>
@@ -22,4 +22,8 @@
22
22
  Options -Indexes +MultiViews +FollowSymLinks
23
23
  AllowOverride None
24
24
  Require all granted
25
+
26
+ order allow,deny
27
+ allow from all
28
+
25
29
  </Directory>
@@ -6,46 +6,26 @@ namespace :apache do
6
6
  desc 'Configure Apache (httpd) and restart it'
7
7
  task :configure_and_start do
8
8
  invoke 'apache:configure'
9
- invoke 'apache:chkconfig_on' # This task should go to Puppet or installation script
10
- invoke 'apache:replace_apache_defaults' # This task should go to Puppet or installation script
11
9
  invoke 'apache:create_symbolic_link'
12
10
  end
13
11
 
14
- # This task should be moved into Puppet or the installation script
15
- desc 'Configure Apache to start at bootup'
16
- task :chkconfig_on do
17
- on roles(:web) do
18
- info 'In task apache:chkconfig_on'
19
-
20
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
21
-
22
- debug '#' * 50
23
-
24
- debug 'chkconfig httpd on'
25
- execute "#{sudo_cmd} chkconfig httpd on"
26
-
27
- info 'Configured Apache to start at bootup'
28
- debug '#' * 50
29
- end
30
- end
31
-
32
12
  desc 'Restart Apache (httpd) service'
33
13
  task :restart do
34
14
  on roles(:web) do
35
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
15
+ sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
36
16
 
37
17
  debug '#' * 50
38
18
 
39
- debug 'service httpd stop'
40
- execute "#{sudo_cmd} service httpd stop"
19
+ debug 'systemctl stop apache2'
20
+ execute "#{sudo_cmd} systemctl stop apache2"
41
21
 
42
- debug 'pkill -9 httpd || true'
43
- execute "#{sudo_cmd} pkill -9 httpd || true"
22
+ debug 'pkill -9 apache2 || true'
23
+ execute "#{sudo_cmd} pkill -9 apache2 || true"
44
24
 
45
- debug 'service httpd start'
46
- execute "#{sudo_cmd} service httpd start"
25
+ debug 'systemctl start apache2'
26
+ execute "#{sudo_cmd} systemctl start apache2"
47
27
 
48
- info 'Restarted Apache (httpd) service'
28
+ info 'Restarted Apache (apache2) service'
49
29
  debug '#' * 50
50
30
  end
51
31
  end
@@ -53,74 +33,13 @@ namespace :apache do
53
33
  desc 'Configure Apache configuration files'
54
34
  task :configure do
55
35
  invoke 'apache:create_apache_shared_folder'
56
- invoke 'apache:create_apache_sites_folder'
57
- invoke 'apache:configure_apache_modules'
58
36
  invoke 'apache:configure_app_ssl_conf_file'
59
37
  end
60
38
 
61
- # This task should be moved into Puppet or the installation script
62
- desc 'Create Apache multi-site configuration folder'
63
- task :create_apache_sites_folder do
64
- on roles(:app) do
65
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
66
-
67
- debug '#' * 50
68
- debug 'Create Apache multi-site configuration folder'
69
-
70
- debug 'mkdir -p /etc/httpd/sites.d'
71
- execute "#{sudo_cmd} mkdir -p /etc/httpd/sites.d"
72
-
73
- debug '#' * 50
74
- end
75
- end
76
-
77
- # This task should be moved into Puppet or the installation script
78
- desc 'Configure Apache modules'
79
- task :configure_apache_modules do
80
- on roles(:app) do
81
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
82
-
83
- debug '#' * 50
84
- debug 'Configure (HTTP) Apache Passenger module'
85
-
86
- set :shared_passenger_file, '/etc/httpd/conf.modules.d/00-passenger.conf'
87
- passenger_file = File.expand_path('../recipes/apache/00-passenger.conf', __dir__)
88
-
89
- # Create a temporary copy of the passenger module file
90
- set :tmp_passenger_file, '/tmp/00-passenger.conf'
91
-
92
- upload! StringIO.new(File.read(passenger_file)), fetch(:tmp_passenger_file).to_s
93
-
94
- passenger_root = get_command_output("/usr/local/rvm/bin/rvm #{fetch(:rvm_ruby_version)} do passenger-config --root")
95
- ruby_path = "/#{passenger_root.split('/')[1..5].join('/')}/wrappers/ruby"
96
-
97
- debug "sed -i 's|<<PASSENGER_ROOT>>|#{passenger_root}|g' #{fetch(:tmp_passenger_file)}"
98
- execute "sed -i 's|<<PASSENGER_ROOT>>|#{passenger_root}|g' #{fetch(:tmp_passenger_file)}"
99
- execute "sed -i 's|<<RUBY_PATH>>|#{ruby_path}|g' #{fetch(:tmp_passenger_file)}"
100
-
101
- # Replace the passenger module file
102
- execute "#{sudo_cmd} mv -f #{fetch(:tmp_passenger_file)} #{fetch(:shared_passenger_file)}"
103
- execute "#{sudo_cmd} chown root.root #{fetch(:shared_passenger_file)}"
104
-
105
- debug '#' * 50
106
- debug 'Deactivate unnecessary Apache modules'
107
- %w[00-dav.conf 00-lua.conf 00-proxy.conf 01-cgi.conf].each do |file|
108
- if remote_file_exists?("/etc/httpd/conf.modules.d/#{file}")
109
- # only perform backup of Apache modules files unless already done
110
- unless remote_file_exists?("/etc/httpd/conf.modules.d/#{file}_bck")
111
- execute "#{sudo_cmd} cp /etc/httpd/conf.modules.d/#{file} /etc/httpd/conf.modules.d/#{file}_bck"
112
- end
113
- execute "#{sudo_cmd} truncate -s 0 /etc/httpd/conf.modules.d/#{file}"
114
- end
115
- end
116
- debug '#' * 50
117
- end
118
- end
119
-
120
39
  desc 'Configure (HTTPS) Apache Application configuration files'
121
40
  task :configure_app_ssl_conf_file do
122
41
  on roles(:app), in: :sequence do
123
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
42
+ sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
124
43
 
125
44
  debug '#' * 50
126
45
  debug 'Configure (HTTPS) Apache Application configuration files'
@@ -132,68 +51,19 @@ namespace :apache do
132
51
  debug "chmod g+w #{fetch(:shared_apache_conf_ssl_file)}"
133
52
  execute "chmod g+w #{fetch(:shared_apache_conf_ssl_file)}"
134
53
 
135
- passenger_root = get_command_output("/usr/local/rvm/bin/rvm #{fetch(:rvm_ruby_version)} do passenger-config --root")
136
- ruby_path = "/#{passenger_root.split('/')[1..5].join('/')}/wrappers/ruby"
54
+ ruby_path = get_command_output("/usr/local/rvm/bin/rvm #{fetch(:rvm_ruby_version)} do which ruby")
137
55
 
138
56
  execute "sed -i 's/<<APPLICATION_NAME>>/#{fetch(:app_name_uri)}/g' #{fetch(:shared_apache_conf_ssl_file)}"
139
57
  execute "sed -i 's/<<ENVIRONMENT>>/#{fetch(:environment)}/g' #{fetch(:shared_apache_conf_ssl_file)}"
140
58
  execute "sed -i 's|<<RUBY_PATH>>|#{ruby_path}|g' #{fetch(:shared_apache_conf_ssl_file)}"
141
59
 
142
- execute "#{sudo_cmd} ln -sfn #{fetch(:shared_apache_conf_ssl_file)} /etc/httpd/sites.d/"
60
+ execute "#{sudo_cmd} ln -sfn #{fetch(:shared_apache_conf_ssl_file)} /etc/apache2/sites-available/"
61
+ execute "#{sudo_cmd} a2ensite `basename #{fetch(:shared_apache_conf_ssl_file)} .conf`"
143
62
 
144
63
  debug '#' * 50
145
64
  end
146
65
  end
147
66
 
148
- # This task should be moved into Puppet or the installation script
149
- desc 'Replace CentOS 7 default httpd.conf and ssl.conf file with our version'
150
- task :replace_apache_defaults do
151
- on roles(:web) do
152
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
153
-
154
- debug '#' * 50
155
- debug 'Update httpd.conf and ssl.conf'
156
-
157
- set :httpd_conf_file, '/etc/httpd/conf/httpd.conf'
158
-
159
- # Replace the original Apache configuration file
160
- if remote_file_exists?('/etc/httpd/conf/httpd.conf_bck')
161
- info 'Apache original configuration file already backed up at: /etc/httpd/conf/httpd.conf_bck'
162
- else
163
- execute "#{sudo_cmd} cp -f #{fetch(:httpd_conf_file)} /etc/httpd/conf/httpd.conf_bck"
164
- info 'Apache original configuration file backed up at: /etc/httpd/conf/httpd.conf_bck'
165
- end
166
-
167
- # Create a temporary copy of the Apache configuration file
168
- set :tmp_httpd_file, '/tmp/httpd.conf'
169
- httpd_safe_file = File.expand_path('../recipes/apache/httpd.conf', __dir__)
170
-
171
- upload! StringIO.new(File.read(httpd_safe_file)), fetch(:tmp_httpd_file).to_s
172
-
173
- # Replace the original Apache configuration file
174
- execute "#{sudo_cmd} mv -f #{fetch(:tmp_httpd_file)} #{fetch(:httpd_conf_file)}"
175
-
176
- set :ssl_conf_file, '/etc/httpd/conf.d/ssl.conf'
177
-
178
- # Replace the original Apache ssl configuration file
179
- if remote_file_exists?('/etc/httpd/conf.d/ssl.conf_bck')
180
- info 'Apache original ssl configuration file already backed up at: /etc/httpd/conf.d/ssl.conf_bck'
181
- else
182
- execute "#{sudo_cmd} cp -f #{fetch(:ssl_conf_file)} /etc/httpd/conf.d/ssl.conf_bck"
183
- info 'Apache original ssl configuration file backed up at: /etc/httpd/conf.d/ssl.conf_bck'
184
- end
185
-
186
- # Create a temporary copy of the Apache ssl configuration file
187
- set :tmp_ssl_file, '/tmp/ssl.conf'
188
- ssl_safe_file = File.expand_path('../recipes/apache/ssl.conf', __dir__)
189
-
190
- upload! StringIO.new(File.read(ssl_safe_file)), fetch(:tmp_ssl_file).to_s
191
-
192
- # Replace the original Apache ssl configuration file
193
- execute "#{sudo_cmd} mv -f #{fetch(:tmp_ssl_file)} #{fetch(:ssl_conf_file)}"
194
- end
195
- end
196
-
197
67
  desc 'Check that the user has write permissions in the Deploy and in Apache DocumentRoot folders'
198
68
  task :check_write_permissions do
199
69
  invoke 'apache:check_write_permissions_on_deploy'
@@ -204,8 +74,8 @@ namespace :apache do
204
74
  task :check_write_permissions_on_deploy do
205
75
  on roles(:app), in: :sequence do |host|
206
76
  debug '#' * 50
207
- debug "Checking folder '#{fetch(:deploy_to)}' (where the application has to be deployed) "\
208
- "for the right permissions on Host '#{host}'"
77
+ debug "Checking folder '#{fetch(:deploy_to)}' (where the application has to be deployed) " \
78
+ "for the right permissions on Host '#{host}'"
209
79
 
210
80
  if test("[ -w #{fetch(:deploy_to)} ]")
211
81
  info "#{fetch(:deploy_to)} is writable on #{host}"
@@ -236,7 +106,7 @@ namespace :apache do
236
106
  desc 'Create Apache configuration files shared folder'
237
107
  task :create_apache_shared_folder do
238
108
  on roles(:app) do
239
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
109
+ sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
240
110
 
241
111
  debug '#' * 50
242
112
  debug 'Create Apache configuration files shared folder'
@@ -254,7 +124,7 @@ namespace :apache do
254
124
  desc 'Create symbolic link to application public folder in Apache DocumentRoot folder'
255
125
  task :create_symbolic_link do
256
126
  on roles(:web), in: :sequence do
257
- sudo_cmd = "echo #{fetch(:password)} | sudo -S"
127
+ sudo_cmd = "echo '#{fetch(:password)}' | sudo -S"
258
128
 
259
129
  info '#' * 50
260
130
  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,17 +74,17 @@ 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
 
81
81
  # Needs access to the folder due to the first write and log rotation
82
- debug "chown -R nobody.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/log"
83
- execute "#{sudo_cmd} chown -R nobody.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/log"
82
+ debug "chown -R #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/log"
83
+ execute "#{sudo_cmd} chown -R #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/log"
84
84
 
85
85
  # Needs write permissions
86
- debug "chown -R nobody.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/tmp/"
87
- execute "#{sudo_cmd} chown -R nobody.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/tmp/"
86
+ debug "chown -R #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/tmp/"
87
+ execute "#{sudo_cmd} chown -R #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:shared_path)}/tmp/"
88
88
 
89
89
  # Since the cache is local to any App installation it's necessary to update permissions
90
90
  app_cache_folder = release_path.join('tmp/cache')
@@ -93,9 +93,9 @@ namespace :app_home do
93
93
  debug "mkdir -p #{app_cache_folder}"
94
94
  execute "#{sudo_cmd} mkdir -p #{app_cache_folder}"
95
95
 
96
- # Phusion Passenger (as nobody) needs write permissions to cache folder
97
- debug "chown -R nobody.#{fetch(:app_group_owner)} #{app_cache_folder}"
98
- execute "#{sudo_cmd} chown -R nobody.#{fetch(:app_group_owner)} #{app_cache_folder}"
96
+ # Phusion Passenger (respective user) needs write permissions to cache folder
97
+ debug "chown -R #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{app_cache_folder}"
98
+ execute "#{sudo_cmd} chown -R #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{app_cache_folder}"
99
99
 
100
100
  # Give write permissions to groups
101
101
  debug "chmod g+ws #{app_cache_folder}"
@@ -110,13 +110,13 @@ 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"
117
117
 
118
118
  debug '#' * 50
119
- chown_command = "chown -Rf nobody.#{fetch(:app_group_owner)} #{fetch(:public_folder_path)}/*"
119
+ chown_command = "chown -Rf #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:public_folder_path)}/*"
120
120
  debug chown_command
121
121
  execute "#{sudo_cmd} #{chown_command}"
122
122
 
@@ -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 + ' => Start Application first time deployment...'
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 + ' => Start Application re-deployment...'
158
+ info "#{'#' * 10} => Start Application re-deployment..."
159
159
  info '#' * 100
160
160
  end
161
161
  end
@@ -163,21 +163,11 @@ namespace :app_home do
163
163
  task :deploy_success_msg do
164
164
  on roles(:msg) do
165
165
  info '#' * 100
166
- info '#' * 10 + ' => Application Successfully deployed...'
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
170
170
  end
171
171
  end
172
172
 
173
- ###
174
- # This task doesn't look to be working:
175
- # desc 'Restart application'
176
- ###
177
- task :restart do
178
- on roles(:app) do
179
- info '#' * 10 + ' Touching restart.txt...'
180
- execute :touch, release_path.join('tmp/restart.txt')
181
- end
182
- end
183
173
  end
@@ -147,6 +147,7 @@ namespace :load do
147
147
 
148
148
  # Sudo related information
149
149
  set :use_sudo, -> { true }
150
+ set :app_user_owner, -> { 'www-data' }
150
151
  set :app_group_owner, -> { 'exfl_itdm' }
151
152
 
152
153
  # Capistrano::Rails
@@ -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,12 +71,12 @@ 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
 
78
78
  # Update database.yml user and group owners
79
- chown_command = "chown nobody.#{fetch(:app_group_owner)} #{fetch(:database_file_path)}"
79
+ chown_command = "chown #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:database_file_path)}"
80
80
  debug chown_command
81
81
  execute "#{sudo_cmd} #{chown_command}"
82
82
 
@@ -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,12 +90,12 @@ 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
 
97
97
  # Update database.yml user and group owners
98
- chown_command = "chown nobody.#{fetch(:app_group_owner)} #{fetch(:secrets_file_path)}"
98
+ chown_command = "chown #{fetch(:app_user_owner)}.#{fetch(:app_group_owner)} #{fetch(:secrets_file_path)}"
99
99
  debug chown_command
100
100
  execute "#{sudo_cmd} #{chown_command}"
101
101
 
@@ -65,7 +65,7 @@ namespace :util do
65
65
  task :klist do
66
66
  on roles(:app, :web) do
67
67
  info '#' * 100
68
- info '#' * 10 + ' ===> KLIST <=== '
68
+ info "#{'#' * 10} ===> KLIST <=== "
69
69
  info '#' * 10 + execute_rake_command('klist').to_s
70
70
  info '#' * 100
71
71
  end
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.3.0
4
+ version: 0.5.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: 2020-01-08 00:00:00.000000000 Z
12
+ date: 2024-06-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -54,16 +54,14 @@ files:
54
54
  - LICENSE.txt
55
55
  - README.md
56
56
  - Rakefile
57
+ - capistrano-exfel-0.4.0.gem
57
58
  - capistrano-exfel.gemspec
58
59
  - capistrano.graph
59
60
  - capistrano.png
60
61
  - lib/capistrano/exfel.rb
61
- - lib/capistrano/exfel/co7.rb
62
+ - lib/capistrano/exfel/ubuntu22.rb
62
63
  - lib/capistrano/exfel/version.rb
63
- - lib/capistrano/recipes/apache/00-passenger.conf
64
64
  - lib/capistrano/recipes/apache/app_ssl.conf
65
- - lib/capistrano/recipes/apache/httpd.conf
66
- - lib/capistrano/recipes/apache/ssl.conf
67
65
  - lib/capistrano/recipes/config/database_mysql.yml
68
66
  - lib/capistrano/recipes/config/database_postgresql.yml
69
67
  - lib/capistrano/recipes/config/database_sqlite.yml
@@ -79,7 +77,7 @@ homepage: https://github.com/luismaia/capistrano-exfel
79
77
  licenses:
80
78
  - MIT
81
79
  metadata: {}
82
- post_install_message:
80
+ post_install_message:
83
81
  rdoc_options: []
84
82
  require_paths:
85
83
  - lib
@@ -94,8 +92,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
92
  - !ruby/object:Gem::Version
95
93
  version: '0'
96
94
  requirements: []
97
- rubygems_version: 3.0.6
98
- signing_key:
95
+ rubygems_version: 3.5.7
96
+ signing_key:
99
97
  specification_version: 4
100
- summary: Deploy Ruby on Rails 4 and 5 Applications in EXFEL Virtual Machines
98
+ summary: Deploy Ruby on Rails 4, 5, 6 and 7 Applications in EXFEL Virtual Machines
101
99
  test_files: []
@@ -1,6 +0,0 @@
1
- LoadModule passenger_module <<PASSENGER_ROOT>>/buildout/apache2/mod_passenger.so
2
- <IfModule mod_passenger.c>
3
- PassengerRoot <<PASSENGER_ROOT>>
4
- PassengerDefaultRuby <<RUBY_PATH>>
5
- </IfModule>
6
-
@@ -1,74 +0,0 @@
1
-
2
- ServerRoot "/etc/httpd"
3
- Listen 80
4
-
5
- Include conf.modules.d/*.conf
6
-
7
- User apache
8
- Group apache
9
-
10
- ServerAdmin root@localhost
11
- ServerSignature Off
12
- ServerTokens Prod
13
-
14
- <Directory />
15
- AllowOverride none
16
- Require all denied
17
- </Directory>
18
-
19
- DocumentRoot "/var/www/html"
20
-
21
- <Directory "/var/www">
22
- AllowOverride None
23
- Require all granted
24
- </Directory>
25
-
26
- <Directory "/var/www/html">
27
- Options Indexes FollowSymLinks
28
- AllowOverride None
29
- Require all granted
30
-
31
- # Redirect all HTTP to https://%{SERVER_NAME}/, keeping the requested path
32
- RewriteEngine On
33
- RewriteCond %{HTTPS} !=on
34
- RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
35
-
36
- </Directory>
37
-
38
- <IfModule dir_module>
39
- DirectoryIndex index.html
40
- </IfModule>
41
-
42
- <Files ".ht*">
43
- Require all denied
44
- </Files>
45
-
46
- ErrorLog "logs/error_log"
47
-
48
- LogLevel warn
49
-
50
- <IfModule log_config_module>
51
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
52
- LogFormat "%h %l %u %t \"%r\" %>s %b" common
53
- <IfModule logio_module>
54
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
55
- </IfModule>
56
- CustomLog "logs/access_log" combined
57
- </IfModule>
58
-
59
-
60
- <IfModule mime_module>
61
- TypesConfig /etc/mime.types
62
- AddType application/x-compress .Z
63
- AddType application/x-gzip .gz .tgz
64
- </IfModule>
65
-
66
- AddDefaultCharset UTF-8
67
-
68
- <IfModule mime_magic_module>
69
- MIMEMagicFile conf/magic
70
- </IfModule>
71
-
72
-
73
- EnableSendfile on
74
- IncludeOptional conf.d/*.conf
@@ -1,49 +0,0 @@
1
- Listen 443 https
2
-
3
- SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
4
-
5
- SSLSessionCache shmcb:/run/httpd/sslcache(512000)
6
- SSLSessionCacheTimeout 300
7
-
8
- SSLRandomSeed startup file:/dev/urandom 256
9
- SSLRandomSeed connect builtin
10
-
11
- SSLCryptoDevice builtin
12
-
13
- ##
14
- ## SSL Virtual Host Context
15
- ##
16
-
17
- <VirtualHost _default_:443>
18
-
19
- ErrorLog logs/ssl_error_log
20
- LogLevel warn
21
-
22
- SSLEngine on
23
-
24
- SSLProtocol all -SSLv2 -SSLv3
25
-
26
- SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
27
-
28
- SSLCertificateFile /etc/pki/tls/certs/localhost.crt
29
-
30
- SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
31
-
32
- <Files ~ "\.(cgi|shtml|phtml|php3?)$">
33
- SSLOptions +StdEnvVars
34
- </Files>
35
- <Directory "/var/www/cgi-bin">
36
- SSLOptions +StdEnvVars
37
- </Directory>
38
-
39
- BrowserMatch "MSIE [2-5]" \
40
- nokeepalive ssl-unclean-shutdown \
41
- downgrade-1.0 force-response-1.0
42
-
43
- RemoteIPHeader X-Forwarded-For
44
- LogFormat "%t - %a - %s - %{Host}i - \"%r\" \"%{Referer}i\" \"%{User-agent}i\" %D" xfel
45
- CustomLog logs/ssl_access_log xfel
46
-
47
- IncludeOptional sites.d/*.conf
48
-
49
- </VirtualHost>
File without changes