|
42 | 42 | # String. Specifies if jdk should be installed or absent
|
43 | 43 | # Defaults to <tt>installed</tt>.
|
44 | 44 | #
|
45 |
| -class jdk_oracle( |
| 45 | +class jdk_oracle ( |
46 | 46 | $version = hiera('jdk_oracle::version', '8' ),
|
47 | 47 | $version_update = hiera('jdk_oracle::version_update', 'default' ),
|
48 | 48 | $version_build = hiera('jdk_oracle::version_build', 'default' ),
|
|
55 | 55 | $ensure = 'installed'
|
56 | 56 | ) {
|
57 | 57 |
|
58 |
| - $default_8_update = '11' |
59 |
| - $default_8_build = '12' |
60 |
| - $default_7_update = '67' |
61 |
| - $default_7_build = '01' |
62 |
| - $default_6_update = '45' |
63 |
| - $default_6_build = '06' |
64 |
| - |
65 |
| - if $ensure == 'installed' { |
66 |
| - # Set default exec path for this module |
67 |
| - Exec { path => ['/usr/bin', '/usr/sbin', '/bin'] } |
68 |
| - |
69 |
| - case $platform { |
70 |
| - 'x64': { $plat_filename = 'x64' } |
71 |
| - 'x86': { $plat_filename = 'i586' } |
72 |
| - default: { fail("Unsupported platform: ${platform}. Implement me?") } |
73 |
| - } |
74 |
| - |
75 |
| - case $version { |
76 |
| - '8': { |
77 |
| - if ($version_update != 'default') { |
78 |
| - $version_u = $version_update |
79 |
| - } else { |
80 |
| - $version_u = $default_8_update |
81 |
| - } |
82 |
| - if ($version_build != 'default'){ |
83 |
| - $version_b = $version_build |
84 |
| - } else { |
85 |
| - $version_b = $default_8_build |
86 |
| - } |
87 |
| - $javaDownloadURI = "http://download.oracle.com/otn-pub/java/jdk/${version}u${version_u}-b${version_b}/jdk-${version}u${version_u}-linux-${plat_filename}.tar.gz" |
88 |
| - $java_home = "${install_dir}/jdk1.${version}.0_${version_u}" |
89 |
| - $jceDownloadURI = 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip' |
90 |
| - } |
91 |
| - '7': { |
92 |
| - if ($version_update != 'default'){ |
93 |
| - $version_u = $version_update |
94 |
| - } else { |
95 |
| - $version_u = $default_7_update |
96 |
| - } |
97 |
| - if ($version_build != 'default'){ |
98 |
| - $version_b = $version_build |
99 |
| - } else { |
100 |
| - $version_b = $default_7_build |
101 |
| - } |
102 |
| - $javaDownloadURI = "http://download.oracle.com/otn-pub/java/jdk/${version}u${version_u}-b${version_b}/jdk-${version}u${version_u}-linux-${plat_filename}.tar.gz" |
103 |
| - $java_home = "${install_dir}/jdk1.${version}.0_${version_u}" |
104 |
| - } |
105 |
| - '6': { |
106 |
| - if ($version_update != 'default'){ |
107 |
| - $version_u = $version_update |
108 |
| - } else { |
109 |
| - $version_u = $default_6_update |
110 |
| - } |
111 |
| - if ($version_build != 'default'){ |
112 |
| - $version_b = $version_build |
113 |
| - } else { |
114 |
| - $version_b = $default_6_build |
115 |
| - } |
116 |
| - $javaDownloadURI = "https://edelivery.oracle.com/otn-pub/java/jdk/${version}u${version_u}-b${version_b}/jdk-${version}u${version_u}-linux-${plat_filename}.bin" |
117 |
| - $java_home = "${install_dir}/jdk1.${version}.0_${version_u}" |
118 |
| - } |
119 |
| - default: { |
120 |
| - fail("Unsupported version: ${version}. Implement me?") |
121 |
| - } |
122 |
| - } |
123 |
| - |
124 |
| - if ! defined(File[$install_dir]) { |
125 |
| - file { $install_dir: |
126 |
| - ensure => directory, |
127 |
| - } |
128 |
| - } |
129 |
| - |
130 |
| - $installerFilename = inline_template('<%= File.basename(@javaDownloadURI) %>') |
131 |
| - |
132 |
| - if ( $use_cache ){ |
133 |
| - file { "${install_dir}/${installerFilename}": |
134 |
| - source => "${cache_source}${installerFilename}", |
135 |
| - require => File[$install_dir], |
136 |
| - } -> |
137 |
| - exec { 'get_jdk_installer': |
138 |
| - cwd => $install_dir, |
139 |
| - creates => "${install_dir}/jdk_from_cache", |
140 |
| - command => 'touch jdk_from_cache', |
141 |
| - } |
142 |
| - } else { |
143 |
| - exec { 'get_jdk_installer': |
144 |
| - cwd => $install_dir, |
145 |
| - creates => "${install_dir}/${installerFilename}", |
146 |
| - command => "wget -c --no-cookies --no-check-certificate --header \"Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com\" --header \"Cookie: oraclelicense=accept-securebackup-cookie\" \"${javaDownloadURI}\" -O ${installerFilename}", |
147 |
| - timeout => 600, |
148 |
| - require => Package['wget'], |
149 |
| - } |
150 |
| - |
151 |
| - file { "${install_dir}/${installerFilename}": |
152 |
| - mode => '0755', |
153 |
| - require => Exec['get_jdk_installer'], |
154 |
| - } |
155 |
| - |
156 |
| - } |
157 |
| - |
158 |
| - # Java 7/8 comes in a tarball so just extract it. |
159 |
| - if ( $version in [ '7', '8' ] ) { |
160 |
| - exec { 'extract_jdk': |
161 |
| - cwd => "${install_dir}/", |
162 |
| - command => "tar -xf ${installerFilename}", |
163 |
| - creates => $java_home, |
164 |
| - require => Exec['get_jdk_installer'], |
165 |
| - } |
166 |
| - } |
167 |
| - # Java 6 comes as a self-extracting binary |
168 |
| - if ( $version == '6' ) { |
169 |
| - exec { 'extract_jdk': |
170 |
| - cwd => "${install_dir}/", |
171 |
| - command => "${install_dir}/${installerFilename}", |
172 |
| - creates => $java_home, |
173 |
| - require => File["${install_dir}/${installerFilename}"], |
174 |
| - } |
175 |
| - } |
176 |
| - |
177 |
| - # Ensure that files belong to root |
178 |
| - file {$java_home: |
179 |
| - recurse => true, |
180 |
| - owner => root, |
181 |
| - group => root, |
182 |
| - subscribe => Exec['extract_jdk'], |
183 |
| - } |
184 |
| - |
185 |
| - # Set links depending on osfamily or operating system fact |
186 |
| - case $::osfamily { |
187 |
| - 'RedHat', 'Linux': { |
188 |
| - if ( $default_java ) { |
189 |
| - file { '/etc/alternatives/java': |
190 |
| - ensure => link, |
191 |
| - target => "${java_home}/bin/java", |
192 |
| - require => Exec['extract_jdk'], |
193 |
| - } |
194 |
| - file { '/etc/alternatives/javac': |
195 |
| - ensure => link, |
196 |
| - target => "${java_home}/bin/javac", |
197 |
| - require => Exec['extract_jdk'], |
198 |
| - } |
199 |
| - file { '/etc/alternatives/jar': |
200 |
| - ensure => link, |
201 |
| - target => "${java_home}/bin/jar", |
202 |
| - require => Exec['extract_jdk'], |
203 |
| - } |
204 |
| - file { '/usr/sbin/java': |
205 |
| - ensure => link, |
206 |
| - target => '/etc/alternatives/java', |
207 |
| - require => File['/etc/alternatives/java'], |
208 |
| - } |
209 |
| - file { '/usr/sbin/javac': |
210 |
| - ensure => link, |
211 |
| - target => '/etc/alternatives/javac', |
212 |
| - require => File['/etc/alternatives/javac'], |
213 |
| - } |
214 |
| - file { '/usr/sbin/jar': |
215 |
| - ensure => link, |
216 |
| - target => '/etc/alternatives/jar', |
217 |
| - require => File['/etc/alternatives/jar'], |
218 |
| - } |
219 |
| - } |
220 |
| - file { "${install_dir}/java_home": |
221 |
| - ensure => link, |
222 |
| - target => $java_home, |
223 |
| - require => Exec['extract_jdk'], |
224 |
| - } |
225 |
| - file { "${install_dir}/jdk-${version}": |
226 |
| - ensure => link, |
227 |
| - target => $java_home, |
228 |
| - require => Exec['extract_jdk'], |
229 |
| - } |
230 |
| - } |
231 |
| - 'Debian': { |
232 |
| - #Accommodate variations in default install locations for some variants of Debian |
233 |
| - $path_to_updatealternatives_tool = $::lsbdistdescription ? { |
234 |
| - /Ubuntu 14\.04.*/ => '/usr/bin/update-alternatives', |
235 |
| - default => '/usr/sbin/update-alternatives', |
236 |
| - } |
237 |
| - |
238 |
| - if ( $default_java ) { |
239 |
| - exec { "${path_to_updatealternatives_tool} --install /usr/bin/java java ${java_home}/bin/java 20000": |
240 |
| - require => Exec['extract_jdk'], |
241 |
| - unless => "test $(readlink /etc/alternatives/java) = '${java_home}/bin/java'", |
242 |
| - } |
243 |
| - exec { "${path_to_updatealternatives_tool} --install /usr/bin/javac javac ${java_home}/bin/javac 20000": |
244 |
| - require => Exec['extract_jdk'], |
245 |
| - unless => "test $(/bin/readlink /etc/alternatives/javac) = '${java_home}/bin/javac'", |
246 |
| - } |
247 |
| - exec { "${path_to_updatealternatives_tool} --install /usr/bin/jar jar ${java_home}/bin/jar 20000": |
248 |
| - require => Exec['extract_jdk'], |
249 |
| - unless => "test $(/bin/readlink /etc/alternatives/jar) = '${java_home}/bin/jar'", |
250 |
| - } |
251 |
| - augeas { 'environment': |
252 |
| - context => '/files/etc/environment', |
253 |
| - changes => [ |
254 |
| - "set JAVA_HOME ${java_home}", |
255 |
| - ], |
256 |
| - } |
257 |
| - } |
258 |
| - } |
259 |
| - 'Suse': { |
260 |
| - if ( $default_java ) { |
261 |
| - include 'jdk_oracle::suse' |
262 |
| - } |
263 |
| - } |
264 |
| - |
265 |
| - default: { fail("Unsupported OS: ${::osfamily}. Implement me?") } |
266 |
| - } |
267 |
| - |
268 |
| - if ( $jce and $version == '8' ) { |
269 |
| - |
270 |
| - $jceFilename = inline_template('<%= File.basename(@jceDownloadURI) %>') |
271 |
| - $jce_dir = 'UnlimitedJCEPolicyJDK8' |
272 |
| - |
273 |
| - if ( $use_cache ) { |
274 |
| - file { "${install_dir}/${jceFilename}": |
275 |
| - source => "${cache_source}${jceFilename}", |
276 |
| - require => File[$install_dir], |
277 |
| - } -> |
278 |
| - exec { 'get_jce_package': |
279 |
| - cwd => $install_dir, |
280 |
| - creates => "${install_dir}/jce_from_cache", |
281 |
| - command => 'touch jce_from_cache', |
282 |
| - } |
283 |
| - } else { |
284 |
| - exec { 'get_jce_package': |
285 |
| - cwd => $install_dir, |
286 |
| - creates => "${install_dir}/${jceFilename}", |
287 |
| - command => "wget -c --no-cookies --no-check-certificate --header \"Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com\" --header \"Cookie: oraclelicense=accept-securebackup-cookie\" \"${jceDownloadURI}\" -O ${jceFilename}", |
288 |
| - timeout => 600, |
289 |
| - require => Package['wget'], |
290 |
| - } |
291 |
| - |
292 |
| - file { "${install_dir}/${jceFilename}": |
293 |
| - mode => '0755', |
294 |
| - require => Exec['get_jce_package'], |
295 |
| - } |
296 |
| - |
297 |
| - } |
298 |
| - |
299 |
| - exec { 'extract_jce': |
300 |
| - cwd => "${install_dir}/", |
301 |
| - command => "unzip ${jceFilename}", |
302 |
| - creates => "${install_dir}/${jce_dir}", |
303 |
| - require => [ Exec['get_jce_package'], Package['unzip'] ], |
304 |
| - } |
305 |
| - |
306 |
| - file { "${java_home}/jre/lib/security/README.txt": |
307 |
| - ensure => 'present', |
308 |
| - source => "${install_dir}/${jce_dir}/README.txt", |
309 |
| - mode => '0644', |
310 |
| - owner => 'root', |
311 |
| - group => 'root', |
312 |
| - require => Exec['extract_jce'], |
313 |
| - } |
314 |
| - |
315 |
| - file { "${java_home}/jre/lib/security/local_policy.jar": |
316 |
| - ensure => 'present', |
317 |
| - source => "${install_dir}/${jce_dir}/local_policy.jar", |
318 |
| - mode => '0644', |
319 |
| - owner => 'root', |
320 |
| - group => 'root', |
321 |
| - require => Exec['extract_jce'], |
322 |
| - } |
323 |
| - |
324 |
| - file { "${java_home}/jre/lib/security/US_export_policy.jar": |
325 |
| - ensure => 'present', |
326 |
| - source => "${install_dir}/${jce_dir}/US_export_policy.jar", |
327 |
| - mode => '0644', |
328 |
| - owner => 'root', |
329 |
| - group => 'root', |
330 |
| - require => Exec['extract_jce'], |
331 |
| - } |
332 |
| - |
333 |
| - } |
334 |
| - |
| 58 | + jdk_oracle::install { 'jdk_oracle': |
| 59 | + ensure => $ensure, |
| 60 | + version => $version, |
| 61 | + version_update => $version_update, |
| 62 | + version_build => $version_build, |
| 63 | + install_dir => $install_dir, |
| 64 | + use_cache => $use_cache, |
| 65 | + cache_source => $cache_source, |
| 66 | + platform => $platform, |
| 67 | + jce => $jce, |
| 68 | + default_java => $default_java, |
335 | 69 | }
|
336 | 70 |
|
337 | 71 | if ! defined(Package['wget']) {
|
|
0 commit comments