capistrano-exfel 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 29182346107c7a5c7bcaabf4698dbb6c84dda129
4
+ data.tar.gz: c0291a197ccb9aa843dd3869dc9ef9ad790865bf
5
+ SHA512:
6
+ metadata.gz: d97ad3f520a63a0447ce58b14bcd746ec87a942b1c6891b3a89391cafd1feea638084bdda1a7d283b22ff0c43e4e9ddb6617ebef4f9094cfa37fdfc5213182a7
7
+ data.tar.gz: f17164547d6601a7f4f9367af96eb8f55e5bcb73cfcd3a7cdfa6bb8f7ce0ba3c29bf54452f28542000a657f3600dbcdfbbab4effd03c3e5569c1c03e8f2be8f1
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+
16
+ # Rubymine project folder
17
+ .idea
data/.rubocop.yml ADDED
@@ -0,0 +1,20 @@
1
+ #
2
+ # Line is too long.
3
+ Metrics/LineLength:
4
+ Max: 120 # Default: 80
5
+
6
+ #
7
+ # Use %r only for regular expressions matching more than 1 '/' character.
8
+ Style/RegexpLiteral:
9
+ Exclude:
10
+ - 'capistrano-exfel.gemspec'
11
+
12
+ #
13
+ # Use next to skip iteration.
14
+ Style/Next:
15
+ Enabled: false
16
+
17
+ #
18
+ # Use the lambda method for multi-line lambdas.
19
+ Style/Lambda:
20
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in capistrano-exfel.gemspec
4
+ gemspec
5
+
6
+ # Use Rubocop to validate ruby code syntax
7
+ gem 'rubocop', '~> 0.29.1', require: false, group: :development
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Luis Maia
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # Capistrano::Exfel
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'capistrano-exfel'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install capistrano-exfel
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ ## Contributing
26
+
27
+ 1. Fork it ( https://github.com/[my-github-username]/capistrano-exfel/fork )
28
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
29
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
30
+ 4. Push to the branch (`git push origin my-new-feature`)
31
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'capistrano/exfel/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'capistrano-exfel'
8
+ spec.version = Capistrano::Exfel::VERSION
9
+ spec.authors = ['Luis Maia']
10
+ spec.email = ['luisgoncalo.maia@gmail.com']
11
+ spec.summary = 'Deploy Ruby on Rails 4 Applications in EXFEL VMs (Scientific Linux using Apache and Passenger)'
12
+ spec.description = 'Deployment of Ruby on Rails 4 Applications in EXFEL VMs gem '\
13
+ '(Scientific Linux + Apache + RVM + Phusion Passenger) using Capistrano3'
14
+ spec.homepage = ''
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.7'
23
+ spec.add_development_dependency 'rake', '~> 10.0'
24
+ end
@@ -0,0 +1,46 @@
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
+
@@ -0,0 +1,252 @@
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 in.xfel.eu
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>
@@ -0,0 +1,38 @@
1
+ # MySQL. Versions 4.1 and 5.0 are recommended.
2
+ #
3
+ # Install the MySQL driver:
4
+ # gem install mysql2
5
+ #
6
+ # And be sure to use new-style password hashing:
7
+ # http://dev.mysql.com/doc/refman/5.0/en/old-client.html
8
+ #
9
+ base: &base
10
+ adapter: mysql2
11
+ encoding: utf8
12
+ reconnect: false
13
+ pool: 5
14
+ timeout: 5000
15
+ database: <<database_name>>
16
+ username: <<database_username>>
17
+ password: <<database_password>>
18
+ host: <<database_host>>
19
+ port: 3306
20
+
21
+ # Socket files are faster than TCP, but can only be used when both programs are on the same computer.
22
+ #
23
+ # On UNIX, when two programs on the same computer want to talk to each other, they can still open up a TCP connection.
24
+ # But they can also open up a connection via a "socket file".
25
+ # Linux makes the socket file API rather similar to the TCP API, so it's not a big deal to update
26
+ # a program that already communicates over the network via TCP to support communicating via socket files too.
27
+ #
28
+ # Linux:
29
+ socket: /var/lib/mysql/mysql.sock
30
+
31
+ development:
32
+ <<: *base
33
+
34
+ test:
35
+ <<: *base
36
+
37
+ production:
38
+ <<: *base