capistrano-psw 1.0.0.pre32 → 1.0.0.pre33
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 +23 -0
- data/lib/capistrano/psw/version.rb +1 -1
- data/resources/lib/capistrano/tasks/psw-javaee.cap +105 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a6bb05a51b8f52e1d0794467c9f899642d06359
|
4
|
+
data.tar.gz: 3ef12e185ea7a4dca4a15e4a7d472c8e6c37154b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0deda336d97eb31dc1020954c9b464a5a3d16bc69059a55089c5b419efff15d9fe55f4d894f9ed64404b62c33518b5c326586dbfbd32b190fb261800e6b0b37
|
7
|
+
data.tar.gz: 79a7d0e87ad864eaf211f70fa10ef6a5fc7682157346efb21d781d11f158b5479c30606f3014c5de52ee6b6bc8cbf0ffc7b2499e9c63f97fa755b99ac7bb2f9e
|
data/README.md
CHANGED
@@ -306,6 +306,29 @@ Parameters:
|
|
306
306
|
*explode_directory [String] - The directory to which the exploded contents will be written
|
307
307
|
*war_file_location [String] - The absolute path of the WAR file.
|
308
308
|
|
309
|
+
### psw_javaee:deploy_ssl_certs
|
310
|
+
This task will copy SSL certificates defined in the application's shared directory
|
311
|
+
to /etc/ssl/certs and /etc/ssl/private. a Java Keystore will be created for Tomcat's reference.
|
312
|
+
The task takes the following parameters:
|
313
|
+
*[String] ssl_cert_file - the path to the SSL certificate file
|
314
|
+
*[String] ssl_key_file - the path to the SSL key file
|
315
|
+
*[String] ssl_chain_file - the path to the SSL chain file
|
316
|
+
*[String] keystore_password - the password that should be used to secure the keystore.
|
317
|
+
The default value is 'changeit'.
|
318
|
+
*[String] keystore_file - the file path of the keystore.
|
319
|
+
The default value '/<Capistrano Shared Path>/tomcat/keystore.jks'
|
320
|
+
|
321
|
+
### psw_javaee:configure_tomcat
|
322
|
+
This task task will override the Tomcat server definition. This method allows consumers to
|
323
|
+
define an ERB template as well as pass in a ruby binding to populate it.
|
324
|
+
The task takes the following parameters:
|
325
|
+
|
326
|
+
*[Object] template_binding - the Ruby binding used for the Template
|
327
|
+
*[String] tomcat_config_template_path - path to the server template
|
328
|
+
*[String] config_filename - the name of the configuration file
|
329
|
+
*[String] tomcat_config_file_dir - The subdirectory in /<Capistrano Shared Path> which
|
330
|
+
will hold the completed file.
|
331
|
+
|
309
332
|
## License
|
310
333
|
|
311
334
|
2014 Lexmark International Technology S.A. All rights reserved.
|
@@ -12,6 +12,30 @@
|
|
12
12
|
# *explode_directory [String] - The directory to which the exploded contents will be written
|
13
13
|
# *war_file_location [String] - The absolute path of the WAR file.
|
14
14
|
#
|
15
|
+
# === psw_javaee:deploy_ssl_certs
|
16
|
+
# This task will copy SSL certificates defined in the application's shared directory
|
17
|
+
# to /etc/ssl/certs and /etc/ssl/private. a Java Keystore will be created for Tomcat's reference.
|
18
|
+
# The task takes the following parameters:
|
19
|
+
#
|
20
|
+
# @param [String] ssl_cert_file - the path to the SSL certificate file
|
21
|
+
# @param [String] ssl_key_file - the path to the SSL key file
|
22
|
+
# @param [String] ssl_chain_file - the path to the SSL chain file
|
23
|
+
# @param [String] keystore_password - the password that should be used to secure the keystore.
|
24
|
+
# The default value is 'changeit'.
|
25
|
+
# @param [String] keystore_file - the file path of the keystore.
|
26
|
+
# The default value '/<Capistrano Shared Path>/tomcat/keystore.jks'
|
27
|
+
#
|
28
|
+
# === psw_javaee:configure_tomcat
|
29
|
+
# This task task will override the Tomcat server definition. This method allows consumers to
|
30
|
+
# define an ERB template as well as pass in a ruby binding to populate it.
|
31
|
+
# The task takes the following parameters:
|
32
|
+
#
|
33
|
+
# @param [Object] template_binding - the Ruby binding used for the Template
|
34
|
+
# @param [String] tomcat_config_template_path - path to the server template
|
35
|
+
# @param [String] config_filename - the name of the configuration file
|
36
|
+
# @param [String] tomcat_config_file_dir - The subdirectory in /<Capistrano Shared Path> which
|
37
|
+
# will hold the completed file.
|
38
|
+
#
|
15
39
|
# == Contact
|
16
40
|
#
|
17
41
|
# Author:: Lexmark International Technology S.A.
|
@@ -30,4 +54,85 @@ namespace :psw_javaee do
|
|
30
54
|
execute("cd #{args[:explode_directory]} ; /usr/bin/jar xf #{args[:war_file_location]}")
|
31
55
|
end
|
32
56
|
end
|
57
|
+
|
58
|
+
task :deploy_ssl_certs, :ssl_cert_file, :ssl_key_file, :ssl_chain_file, :keystore_password, :keystore_file do |t, args|
|
59
|
+
on roles(:app) do |host|
|
60
|
+
info "Creating cert directory..."
|
61
|
+
ssl_cert_dir = "/etc/ssl/certs"
|
62
|
+
sudo :mkdir, '-p', ssl_cert_dir
|
63
|
+
|
64
|
+
ssl_private_dir = "/etc/ssl/private"
|
65
|
+
info "Creating cert key directory..."
|
66
|
+
sudo :mkdir, '-p', ssl_private_dir
|
67
|
+
|
68
|
+
ssl_cert_filename = Pathname.new(args[:ssl_cert_file]).basename
|
69
|
+
ssl_cert_path = "#{ssl_cert_dir}/#{ssl_cert_filename}"
|
70
|
+
info "Copying certificate (#{args[:ssl_cert_file]}) to key directory..."
|
71
|
+
sudo :rm, "-rf", ssl_cert_path
|
72
|
+
sudo :cp, args[:ssl_cert_file], ssl_cert_dir
|
73
|
+
sudo :chmod, '600', ssl_cert_path
|
74
|
+
|
75
|
+
ssl_key_filename = Pathname.new(args[:ssl_key_file]).basename
|
76
|
+
ssl_key_path = "#{ssl_private_dir}/#{ssl_key_filename}"
|
77
|
+
info "Copying certificate key (#{args[:ssl_key_file]}) to key directory..."
|
78
|
+
sudo :rm, '-rf', ssl_key_path
|
79
|
+
sudo :cp, args[:ssl_key_file], ssl_private_dir
|
80
|
+
sudo :chmod, '600', ssl_key_path
|
81
|
+
|
82
|
+
ssl_chain_filename = Pathname.new(args[:ssl_chain_file]).basename
|
83
|
+
ssl_chain_path = "#{ssl_cert_dir}/#{ssl_chain_filename}"
|
84
|
+
info "Copying certificate chain (#{args[:ssl_chain_file]}) to cert directory..."
|
85
|
+
sudo :rm, '-rf', ssl_chain_path
|
86
|
+
sudo :cp, args[:ssl_chain_file], ssl_cert_dir
|
87
|
+
sudo :chmod, '600', ssl_chain_path
|
88
|
+
|
89
|
+
info "Creating certificate keystore..."
|
90
|
+
keystore_password = args[:keystore_password] unless args[:keystore_password].nil?
|
91
|
+
password ||= "changeit"
|
92
|
+
|
93
|
+
keystore_file = args[:keystore_file] unless args[:keystore_file].nil?
|
94
|
+
keystore_file ||= File.join("#{shared_path}","/tomcat/keystore.jks")
|
95
|
+
|
96
|
+
sudo("openssl pkcs12 -inkey #{ssl_key_path} -in #{ssl_cert_path} -CAfile #{ssl_chain_path} -chain -export -out #{keystore_file} -password pass:#{args[:keystore_password]}")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
task :configure_tomcat, :template_binding, :tomcat_config_template_path, :config_filename, :tomcat_config_file_dir do |t, args|
|
101
|
+
on roles(:app) do |host|
|
102
|
+
info "Configuring tomcat..."
|
103
|
+
|
104
|
+
config_template_path = args[:tomcat_config_template_path]
|
105
|
+
unless config_template_path.nil? || config_template_path.length == 0
|
106
|
+
config_filename = args[:config_filename]
|
107
|
+
|
108
|
+
info "Adding server template #{config_template_path} to tomcat..."
|
109
|
+
|
110
|
+
config_template = ERB.new File.new(config_template_path).read, nil, "%"
|
111
|
+
template_binding = (!args[:template_binding].nil? && args[:template_binding]) || binding
|
112
|
+
config_file = config_template.result(template_binding)
|
113
|
+
|
114
|
+
tmp_site_file = Tempfile.new("#{config_filename}-")
|
115
|
+
tmp_site_file.write(config_file)
|
116
|
+
tmp_site_file.flush
|
117
|
+
|
118
|
+
shared_tomcat_config_dir = File.join("#{shared_path}","#{args[:tomcat_config_file_dir]}")
|
119
|
+
shared_tomcat_config_file = File.join("#{shared_tomcat_config_dir}","#{config_filename}")
|
120
|
+
|
121
|
+
info "Creating shared tomcat configuration directory #{shared_tomcat_config_dir}..."
|
122
|
+
execute :mkdir, '-p', shared_tomcat_config_dir
|
123
|
+
|
124
|
+
info "Uploading tomcat server configuration #{config_filename}..."
|
125
|
+
upload! "#{tmp_site_file.path}", "#{shared_tomcat_config_file}"
|
126
|
+
sudo :chmod, '0755', shared_tomcat_config_file
|
127
|
+
|
128
|
+
#symlink to config file
|
129
|
+
tomcat_config_file = File.join("/etc/tomcat7","#{config_filename}")
|
130
|
+
info "Creating a symlink from shared server configuration file #{shared_tomcat_config_file} as #{tomcat_config_file}..."
|
131
|
+
sudo :rm, '-rf', tomcat_config_file
|
132
|
+
sudo :ln, '-s', shared_tomcat_config_file, tomcat_config_file
|
133
|
+
else
|
134
|
+
info "A server template has not been defined for tomcat"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
33
138
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-psw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.pre33
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lexmark International Technology S.A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|