puppet-zanata/manifests/init.pp
2015-04-24 17:56:25 +00:00

168 lines
4.7 KiB
Puppet

# Copyright 2014 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# == Class: zanata
#
class zanata(
$mysql_host = 'localhost',
$mysql_port = '3306',
$zanata_db_name = 'zanata',
$zanata_db_username = 'zanata',
$zanata_db_password,
$zanata_wildfly_version = '8.1.0',
$zanata_wildfly_install_url = 'https://repo1.maven.org/maven2/org/wildfly/wildfly-dist/8.1.0.Final/wildfly-dist-8.1.0.Final.tar.gz',
$zanata_hibernate_url = 'https://sourceforge.net/projects/zanata/files/wildfly/wildfly-8.1.0.Final-module-hibernate-main-4.2.15.Final.zip',
$zanata_mojarra_url = 'https://sourceforge.net/projects/zanata/files/wildfly/wildfly-8.1.0.Final-module-mojarra-2.1.28.zip',
$zanata_url = 'https://sourceforge.net/projects/zanata/files/webapp/zanata-war-3.6.2.war',
$zanata_default_from_address,
$zanata_storage_dir = '/home/wildfly/zanata',
$zanata_openid_provider_url = '',
$zanata_admin_users = '',
$zanata_listeners = [],
$zanata_smtp_host = '',
$zanata_smtp_port = '',
$zanata_smtp_username = '',
$zanata_smtp_password = '',
$zanata_smtp_tls = '',
$zanata_smtp_ssl = '',
) {
$zanata_file = inline_template('<%= File.basename(@zanata_url) %>')
$zanata_hibernate_file = inline_template('<%= File.basename(@zanata_hibernate_url) %>')
$zanata_mojarra_file = inline_template('<%= File.basename(@zanata_mojarra_url) %>')
zanata::validate_listener { $zanata_listeners:
}
class { 'zanata::wildfly':
wildfly_version => $zanata_wildfly_version,
wildfly_install_source => $zanata_wildfly_install_url,
}
package { [
'libmysql-java',
'unzip'
]:
ensure => present,
}
file { $zanata_storage_dir:
ensure => 'directory',
owner => 'wildfly',
group => 'wildfly'
}
exec { 'download_zanata':
command => "/usr/bin/wget ${zanata_url}",
cwd => '/home/wildfly',
creates => "/home/wildfly/${zanata_file}",
user => 'wildfly',
timeout => 600,
require => [
Package['wget'],
]
}
file { '/opt/wildfly/standalone/deployments/ROOT.war':
ensure => present,
source => "/home/wildfly/${zanata_file}",
owner => 'wildfly',
require => [
Exec['download_zanata'],
]
}
exec { 'download_hibernate':
command => "/usr/bin/wget ${zanata_hibernate_url}",
cwd => '/home/wildfly',
creates => "/home/wildfly/${zanata_hibernate_file}",
user => 'wildfly',
timeout => 600,
require => [
Package['wget'],
]
}
exec { 'unzip_hibernate':
command => "/usr/bin/unzip -o ${zanata_hibernate_file} -d /opt/wildfly/",
cwd => '/home/wildfly',
user => 'wildfly',
require => [
Exec['download_hibernate'],
Package['unzip'],
]
}
exec { 'download_mojarra':
command => "/usr/bin/wget ${zanata_mojarra_url}",
cwd => '/home/wildfly',
creates => "/home/wildfly/${zanata_mojarra_file}",
user => 'wildfly',
timeout => 600,
require => [
Package['wget'],
]
}
exec { 'unzip_mojarra':
command => "/usr/bin/unzip -o ${zanata_mojarra_file} -d /opt/wildfly/",
cwd => '/home/wildfly',
user => 'wildfly',
require => [
Exec['download_mojarra'],
Package['unzip'],
]
}
file { '/opt/wildfly/standalone/deployments/mysql-connector-java.jar':
ensure => 'link',
target => '/usr/share/java/mysql-connector-java.jar',
require => [
Package['libmysql-java'],
Class['zanata::wildfly'],
],
}
file { '/opt/wildfly/standalone/configuration/standalone.xml':
ensure => present,
notify => Service['wildfly'],
owner => wildfly,
group => wildfly,
content => template('zanata/standalone.xml.erb'),
require => [
Class['zanata::wildfly'],
File['/opt/wildfly/standalone/deployments/ROOT.war'],
Exec['unzip_mojarra'],
Exec['unzip_hibernate'],
],
}
}
# == Define: zanata::validate_listener
#
define zanata::validate_listener ($listener = $name) {
$listeners = [ 'https', 'ajp' ]
if $listener and !($listener in $listeners) {
fail("${listener} is not a valid listener type")
}
}