capistrano-exfel 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -6
  3. data/Gemfile +3 -1
  4. data/README.md +2 -2
  5. data/Rakefile +2 -0
  6. data/capistrano-exfel.gemspec +5 -3
  7. data/capistrano.graph +86 -56
  8. data/capistrano.png +0 -0
  9. data/lib/capistrano/exfel.rb +2 -0
  10. data/lib/capistrano/exfel/co7.rb +3 -3
  11. data/lib/capistrano/exfel/version.rb +3 -1
  12. data/lib/capistrano/recipes/{co7 → apache}/00-passenger.conf +0 -0
  13. data/lib/capistrano/recipes/{ub14/apache.conf → apache/app_ssl.conf} +11 -4
  14. data/lib/capistrano/recipes/{co7 → apache}/httpd.conf +6 -0
  15. data/lib/capistrano/recipes/apache/ssl.conf +49 -0
  16. data/lib/capistrano/tasks/apache.rake +268 -0
  17. data/lib/capistrano/tasks/app_home.rake +2 -0
  18. data/lib/capistrano/tasks/application.rake +2 -0
  19. data/lib/capistrano/tasks/assets.rake +2 -0
  20. data/lib/capistrano/tasks/database.rake +2 -0
  21. data/lib/capistrano/tasks/secrets.rake +2 -0
  22. data/lib/capistrano/tasks/util.rake +2 -0
  23. metadata +14 -26
  24. data/lib/capistrano/exfel/sl6.rb +0 -21
  25. data/lib/capistrano/exfel/ub14.rb +0 -20
  26. data/lib/capistrano/recipes/apache_http.conf +0 -46
  27. data/lib/capistrano/recipes/apache_ssl.conf +0 -252
  28. data/lib/capistrano/recipes/co7/apache_http.conf +0 -7
  29. data/lib/capistrano/recipes/co7/apache_ssl.conf +0 -66
  30. data/lib/capistrano/recipes/ub14/passenger.conf +0 -6
  31. data/lib/capistrano/tasks/apache_co7.rake +0 -133
  32. data/lib/capistrano/tasks/apache_common.rake +0 -75
  33. data/lib/capistrano/tasks/apache_rpm.rake +0 -50
  34. data/lib/capistrano/tasks/apache_sl6.rake +0 -241
  35. data/lib/capistrano/tasks/apache_ub14.rake +0 -116
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  namespace :app_home do
2
4
  desc 'Create on server the necessary placeholders for storing the Application'
3
5
  task :create_all do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # EXFEL application specific tasks
2
4
  namespace :application do
3
5
  # Task 'application:deploy_first_time' deploys an application for the first time in the configured server(s).
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # avoid asset precompilation in dev environment
2
4
 
3
5
  Rake::Task['deploy:compile_assets'].clear_actions
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  namespace :database do
2
4
  desc 'Seed default data (roles and common users) to the database'
3
5
  task :seed do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  namespace :secrets do
2
4
  desc 'Create secrets.yml in shared path'
3
5
  task :configure do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  def remote_file_exists?(full_path)
2
4
  get_command_output("if [ -e #{full_path} ]; then echo 'true'; fi") == 'true'
3
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-exfel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Maia
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-11-12 00:00:00.000000000 Z
12
+ date: 2020-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -17,31 +17,30 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.17'
20
+ version: '2.0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.17'
27
+ version: '2.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '12.0'
34
+ version: '13.0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '12.0'
42
- description: Deployment of Ruby on Rails Applications in EXFEL Virtual Machines (Scientific
43
- Linux / CentOS 7 / Ubuntu 14 + Apache + RVM + Phusion Passenger) using Capistrano3
44
- and LDAP
41
+ version: '13.0'
42
+ description: Deployment of Ruby on Rails Applications in EXFEL Virtual Machines (CentOS
43
+ 7 + Apache + RVM + Phusion Passenger) using Capistrano3 and LDAP
45
44
  email:
46
45
  - luisgoncalo.maia@gmail.com
47
46
  - maurizio.manetti@xfel.eu
@@ -60,26 +59,16 @@ files:
60
59
  - capistrano.png
61
60
  - lib/capistrano/exfel.rb
62
61
  - lib/capistrano/exfel/co7.rb
63
- - lib/capistrano/exfel/sl6.rb
64
- - lib/capistrano/exfel/ub14.rb
65
62
  - lib/capistrano/exfel/version.rb
66
- - lib/capistrano/recipes/apache_http.conf
67
- - lib/capistrano/recipes/apache_ssl.conf
68
- - lib/capistrano/recipes/co7/00-passenger.conf
69
- - lib/capistrano/recipes/co7/apache_http.conf
70
- - lib/capistrano/recipes/co7/apache_ssl.conf
71
- - lib/capistrano/recipes/co7/httpd.conf
63
+ - lib/capistrano/recipes/apache/00-passenger.conf
64
+ - lib/capistrano/recipes/apache/app_ssl.conf
65
+ - lib/capistrano/recipes/apache/httpd.conf
66
+ - lib/capistrano/recipes/apache/ssl.conf
72
67
  - lib/capistrano/recipes/config/database_mysql.yml
73
68
  - lib/capistrano/recipes/config/database_postgresql.yml
74
69
  - lib/capistrano/recipes/config/database_sqlite.yml
75
70
  - lib/capistrano/recipes/config/secrets_example.yml
76
- - lib/capistrano/recipes/ub14/apache.conf
77
- - lib/capistrano/recipes/ub14/passenger.conf
78
- - lib/capistrano/tasks/apache_co7.rake
79
- - lib/capistrano/tasks/apache_common.rake
80
- - lib/capistrano/tasks/apache_rpm.rake
81
- - lib/capistrano/tasks/apache_sl6.rake
82
- - lib/capistrano/tasks/apache_ub14.rake
71
+ - lib/capistrano/tasks/apache.rake
83
72
  - lib/capistrano/tasks/app_home.rake
84
73
  - lib/capistrano/tasks/application.rake
85
74
  - lib/capistrano/tasks/assets.rake
@@ -105,8 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
94
  - !ruby/object:Gem::Version
106
95
  version: '0'
107
96
  requirements: []
108
- rubyforge_project:
109
- rubygems_version: 2.7.8
97
+ rubygems_version: 3.0.6
110
98
  signing_key:
111
99
  specification_version: 4
112
100
  summary: Deploy Ruby on Rails 4 and 5 Applications in EXFEL Virtual Machines
@@ -1,21 +0,0 @@
1
- # Load DSL and Setup Up Stages
2
- require 'capistrano/setup'
3
-
4
- # Includes default deployment tasks
5
- require 'capistrano/deploy'
6
-
7
- # Includes tasks from other gems included in your Gemfile
8
- require 'capistrano/rvm'
9
-
10
- # Includes tasks for rails
11
- require 'capistrano/rails'
12
-
13
- load File.expand_path('../tasks/apache_common.rake', __dir__)
14
- load File.expand_path('../tasks/apache_rpm.rake', __dir__)
15
- load File.expand_path('../tasks/apache_sl6.rake', __dir__)
16
- load File.expand_path('../tasks/app_home.rake', __dir__)
17
- load File.expand_path('../tasks/assets.rake', __dir__)
18
- load File.expand_path('../tasks/application.rake', __dir__)
19
- load File.expand_path('../tasks/database.rake', __dir__)
20
- load File.expand_path('../tasks/secrets.rake', __dir__)
21
- load File.expand_path('../tasks/util.rake', __dir__)
@@ -1,20 +0,0 @@
1
- # Load DSL and Setup Up Stages
2
- require 'capistrano/setup'
3
-
4
- # Includes default deployment tasks
5
- require 'capistrano/deploy'
6
-
7
- # Includes tasks from other gems included in your Gemfile
8
- require 'capistrano/rvm'
9
-
10
- # Includes tasks for rails
11
- require 'capistrano/rails'
12
-
13
- load File.expand_path('../tasks/apache_common.rake', __dir__)
14
- load File.expand_path('../tasks/apache_ub14.rake', __dir__)
15
- load File.expand_path('../tasks/app_home.rake', __dir__)
16
- load File.expand_path('../tasks/assets.rake', __dir__)
17
- load File.expand_path('../tasks/application.rake', __dir__)
18
- load File.expand_path('../tasks/database.rake', __dir__)
19
- load File.expand_path('../tasks/secrets.rake', __dir__)
20
- load File.expand_path('../tasks/util.rake', __dir__)
@@ -1,46 +0,0 @@
1
- ##################################################
2
- # See httpd.conf file to obtain mode details
3
- ##################################################
4
-
5
- ##########
6
- # The ServerSignature directive adds a line containing the Apache HTTP Server server version and the ServerName
7
- # to any server-generated documents, such as error messages sent back to clients. ServerSignature is set to on by default.
8
- ##########
9
- #ServerSignature Off
10
-
11
- ##########
12
- # The ServerTokens directive controls whether Server response header field which is sent back to clients includes
13
- # a description of the generic OS-type of the server as well as information about compiled-in modules.
14
- ##########
15
- #ServerTokens Prod
16
-
17
- ##########
18
- # For security reasons it's advisable to forbid browsing outside the document root.
19
- ##########
20
- #<Directory />
21
- # Order Deny,Allow
22
- # Deny from all
23
- # Options None
24
- # AllowOverride None
25
- #</Directory>
26
- #
27
-
28
-
29
- ##################################################
30
- # Connect Passenger with Apache
31
- ##################################################
32
- LoadModule passenger_module <<PASSENGER_ROOT>>/buildout/apache2/mod_passenger.so
33
- <IfModule mod_passenger.c>
34
- PassengerRoot <<PASSENGER_ROOT>>
35
- PassengerDefaultRuby <<RUBY_PATH>>
36
- </IfModule>
37
-
38
-
39
- ##################################################
40
- # Redirect all HTTP requests to HTTPS
41
- ##################################################
42
- <VirtualHost *:80>
43
- ServerName <<SERVER_NAME>>
44
- Redirect / <<APP_DOMAIN>>
45
- </VirtualHost>
46
-
@@ -1,252 +0,0 @@
1
- #
2
- # This is the Apache server configuration file providing SSL support.
3
- # It contains the configuration directives to instruct the server how to
4
- # serve pages over an https connection. For detailing information about these
5
- # directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
6
- #
7
- # Do NOT simply read the instructions in here without understanding
8
- # what they do. They're here only as hints or reminders. If you are unsure
9
- # consult the online docs. You have been warned.
10
- #
11
-
12
- LoadModule ssl_module modules/mod_ssl.so
13
-
14
- #
15
- # When we also provide SSL we have to listen to the
16
- # the HTTPS port in addition.
17
- #
18
- Listen 443
19
-
20
- ##
21
- ## SSL Global Context
22
- ##
23
- ## All SSL configuration in this context applies both to
24
- ## the main server and all SSL-enabled virtual hosts.
25
- ##
26
-
27
- # Pass Phrase Dialog:
28
- # Configure the pass phrase gathering process.
29
- # The filtering dialog program (`builtin' is a internal
30
- # terminal dialog) has to provide the pass phrase on stdout.
31
- SSLPassPhraseDialog builtin
32
-
33
- # Inter-Process Session Cache:
34
- # Configure the SSL Session Cache: First the mechanism
35
- # to use and second the expiring timeout (in seconds).
36
- SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
37
- SSLSessionCacheTimeout 300
38
-
39
- # Semaphore:
40
- # Configure the path to the mutual exclusion semaphore the
41
- # SSL engine uses internally for inter-process synchronization.
42
- SSLMutex default
43
-
44
- # Pseudo Random Number Generator (PRNG):
45
- # Configure one or more sources to seed the PRNG of the
46
- # SSL library. The seed data should be of good random quality.
47
- # WARNING! On some platforms /dev/random blocks if not enough entropy
48
- # is available. This means you then cannot use the /dev/random device
49
- # because it would lead to very long connection times (as long as
50
- # it requires to make more entropy available). But usually those
51
- # platforms additionally provide a /dev/urandom device which doesn't
52
- # block. So, if available, use this one instead. Read the mod_ssl User
53
- # Manual for more details.
54
- SSLRandomSeed startup file:/dev/urandom 256
55
- SSLRandomSeed connect builtin
56
- #SSLRandomSeed startup file:/dev/random 512
57
- #SSLRandomSeed connect file:/dev/random 512
58
- #SSLRandomSeed connect file:/dev/urandom 512
59
-
60
- #
61
- # Use "SSLCryptoDevice" to enable any supported hardware
62
- # accelerators. Use "openssl engine -v" to list supported
63
- # engine names. NOTE: If you enable an accelerator and the
64
- # server does not start, consult the error logs and ensure
65
- # your accelerator is functioning properly.
66
- #
67
- SSLCryptoDevice builtin
68
- #SSLCryptoDevice ubsec
69
-
70
- ##
71
- ## SSL Virtual Host Context
72
- ##
73
-
74
- <VirtualHost _default_:443>
75
-
76
- # General setup for the virtual host, inherited from global configuration
77
- DocumentRoot "/var/www/html"
78
- ServerName <<SERVER_NAME>>
79
-
80
- # Use separate log files for the SSL virtual host; note that LogLevel
81
- # is not inherited from httpd.conf.
82
- ErrorLog logs/ssl_error_log
83
- TransferLog logs/ssl_access_log
84
- LogLevel warn
85
-
86
- # SSL Engine Switch:
87
- # Enable/Disable SSL for this virtual host.
88
- SSLEngine on
89
-
90
- # SSL Protocol support:
91
- # List the enable protocol levels with which clients will be able to
92
- # connect. Disable SSLv2 access by default:
93
- SSLProtocol all -SSLv2
94
-
95
- # SSL Cipher Suite:
96
- # List the ciphers that the client is permitted to negotiate.
97
- # See the mod_ssl documentation for a complete list.
98
- SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
99
-
100
- # Server Certificate:
101
- # Point SSLCertificateFile at a PEM encoded certificate. If
102
- # the certificate is encrypted, then you will be prompted for a
103
- # pass phrase. Note that a kill -HUP will prompt again. A new
104
- # certificate can be generated using the genkey(1) command.
105
- SSLCertificateFile /etc/pki/tls/certs/localhost.crt
106
-
107
- # Server Private Key:
108
- # If the key is not combined with the certificate, use this
109
- # directive to point at the key file. Keep in mind that if
110
- # you've both a RSA and a DSA private key you can configure
111
- # both in parallel (to also allow the use of DSA ciphers, etc.)
112
- SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
113
-
114
- # Server Certificate Chain:
115
- # Point SSLCertificateChainFile at a file containing the
116
- # concatenation of PEM encoded CA certificates which form the
117
- # certificate chain for the server certificate. Alternatively
118
- # the referenced file can be the same as SSLCertificateFile
119
- # when the CA certificates are directly appended to the server
120
- # certificate for convinience.
121
- #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
122
-
123
- # Certificate Authority (CA):
124
- # Set the CA certificate verification path where to find CA
125
- # certificates for client authentication or alternatively one
126
- # huge file containing all of them (file must be PEM encoded)
127
- #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
128
-
129
- # Client Authentication (Type):
130
- # Client certificate verification type and depth. Types are
131
- # none, optional, require and optional_no_ca. Depth is a
132
- # number which specifies how deeply to verify the certificate
133
- # issuer chain before deciding the certificate is not valid.
134
- #SSLVerifyClient require
135
- #SSLVerifyDepth 10
136
-
137
- # Access Control:
138
- # With SSLRequire you can do per-directory access control based
139
- # on arbitrary complex boolean expressions containing server
140
- # variable checks and other lookup directives. The syntax is a
141
- # mixture between C and Perl. See the mod_ssl documentation
142
- # for more details.
143
- #<Location />
144
- #SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
145
- # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
146
- # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
147
- # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
148
- # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
149
- # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
150
- #</Location>
151
-
152
- # SSL Engine Options:
153
- # Set various options for the SSL engine.
154
- # o FakeBasicAuth:
155
- # Translate the client X.509 into a Basic Authorisation. This means that
156
- # the standard Auth/DBMAuth methods can be used for access control. The
157
- # user name is the `one line' version of the client's X.509 certificate.
158
- # Note that no password is obtained from the user. Every entry in the user
159
- # file needs this password: `xxj31ZMTZzkVA'.
160
- # o ExportCertData:
161
- # This exports two additional environment variables: SSL_CLIENT_CERT and
162
- # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
163
- # server (always existing) and the client (only existing when client
164
- # authentication is used). This can be used to import the certificates
165
- # into CGI scripts.
166
- # o StdEnvVars:
167
- # This exports the standard SSL/TLS related `SSL_*' environment variables.
168
- # Per default this exportation is switched off for performance reasons,
169
- # because the extraction step is an expensive operation and is usually
170
- # useless for serving static content. So one usually enables the
171
- # exportation for CGI and SSI requests only.
172
- # o StrictRequire:
173
- # This denies access when "SSLRequireSSL" or "SSLRequire" applied even
174
- # under a "Satisfy any" situation, i.e. when it applies access is denied
175
- # and no other module can change it.
176
- # o OptRenegotiate:
177
- # This enables optimized SSL connection renegotiation handling when SSL
178
- # directives are used in per-directory context.
179
- #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
180
- <Files ~ "\.(cgi|shtml|phtml|php3?)$">
181
- SSLOptions +StdEnvVars
182
- </Files>
183
- <Directory "/var/www/cgi-bin">
184
- SSLOptions +StdEnvVars
185
- </Directory>
186
-
187
- # SSL Protocol Adjustments:
188
- # The safe and default but still SSL/TLS standard compliant shutdown
189
- # approach is that mod_ssl sends the close notify alert but doesn't wait for
190
- # the close notify alert from client. When you need a different shutdown
191
- # approach you can use one of the following variables:
192
- # o ssl-unclean-shutdown:
193
- # This forces an unclean shutdown when the connection is closed, i.e. no
194
- # SSL close notify alert is send or allowed to received. This violates
195
- # the SSL/TLS standard but is needed for some brain-dead browsers. Use
196
- # this when you receive I/O errors because of the standard approach where
197
- # mod_ssl sends the close notify alert.
198
- # o ssl-accurate-shutdown:
199
- # This forces an accurate shutdown when the connection is closed, i.e. a
200
- # SSL close notify alert is send and mod_ssl waits for the close notify
201
- # alert of the client. This is 100% SSL/TLS standard compliant, but in
202
- # practice often causes hanging connections with brain-dead browsers. Use
203
- # this only for browsers where you know that their SSL implementation
204
- # works correctly.
205
- # Notice: Most problems of broken clients are also related to the HTTP
206
- # keep-alive facility, so you usually additionally want to disable
207
- # keep-alive for those clients, too. Use variable "nokeepalive" for this.
208
- # Similarly, one has to force some clients to use HTTP/1.0 to workaround
209
- # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
210
- # "force-response-1.0" for this.
211
- SetEnvIf User-Agent ".*MSIE.*" \
212
- nokeepalive ssl-unclean-shutdown \
213
- downgrade-1.0 force-response-1.0
214
-
215
- # Per-Server Logging:
216
- # The home of a custom SSL log file. Use this when you want a
217
- # compact non-error SSL logfile on a virtual host basis.
218
- CustomLog logs/ssl_request_log \
219
- "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
220
-
221
-
222
-
223
- # <<APPLICATION_NAME>> - Ruby on Rails Application
224
- #
225
- # Application secured by SSL
226
-
227
- Alias /<<APPLICATION_NAME>> /var/www/html/<<APPLICATION_NAME>>
228
-
229
- #
230
- # Passenger
231
- #
232
- PassengerResolveSymlinksInDocumentRoot on
233
-
234
- #
235
- # Application
236
- #
237
- <Directory "/var/www/html/<<APPLICATION_NAME>>/">
238
- RackBaseURI /<<APPLICATION_NAME>>
239
- RailsEnv <<ENVIRONMENT>>
240
-
241
- PassengerUser nobody
242
- # Scientific Linux: nobody / Ubuntu/Debian: nogroup
243
- PassengerGroup nobody
244
-
245
- # This relaxes Apache security settings.
246
- Options -Indexes MultiViews FollowSymLinks
247
- AllowOverride all
248
- Order allow,deny
249
- allow from all
250
- </Directory>
251
-
252
- </VirtualHost>