Skip to content

Instantly share code, notes, and snippets.

@velocity303
Last active September 11, 2015 23:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save velocity303/28fe6de59a0838833fae to your computer and use it in GitHub Desktop.
Save velocity303/28fe6de59a0838833fae to your computer and use it in GitHub Desktop.
Jenkins profile --- so far...
class profile::app::jenkins (
$jenkins_version = 'latest',
$tomcat_major_version = '8',
) {
case $tomcat_major_version {
'6': {
$tomcat_version = '6.0.44'
$catalina_dir = "/opt/apache-tomcat6"
$tomcat_other_versions = [ '7', '8']
}
'7': {
$tomcat_version = '7.0.64'
$catalina_dir = "/opt/apache-tomcat7"
$tomcat_other_versions = [ '6', '8']
}
'8': {
$tomcat_version = '8.0.26'
$catalina_dir = "/opt/apache-tomcat8"
$tomcat_other_versions = [ '6', '7']
}
}
if $::kernel == 'Linux' {
class { 'java':
distribution => 'jre'
}
class { '::tomcat':
catalina_home => $catalina_dir,
}
firewall { '100 allow tomcat access':
port => [8080],
proto => tcp,
action => accept,
}
tomcat::instance{ "tomcat${tomcat_major_version}":
install_from_source => true,
source_url => "http://www.us.apache.org/dist/tomcat/tomcat-${tomcat_major_version}/v${tomcat_version}/bin/apache-tomcat-${tomcat_version}.tar.gz",
source_strip_first_dir => true,
catalina_base => "${catalina_dir}",
catalina_home => "${catalina_dir}",
notify => Tomcat::Setenv::Entry['JENKINS_HOME'],
before => Tomcat::Setenv::Entry['JENKINS_HOME'],
}
tomcat::setenv::entry { 'JENKINS_HOME':
value => "\"-DJENKINS_HOME=${catalina_dir}/webapps/jenkins\"",
param => 'CATALINA_OPTS',
before => Tomcat::War["jenkins-${jenkins_version}.war"],
notify => Tomcat::War["jenkins-${jenkins_version}.war"],
}
tomcat::war { "jenkins-${jenkins_version}.war" :
war_source => "http://mirrors.jenkins-ci.org/war/${jenkins_version}/jenkins.war",
catalina_base => "${catalina_dir}",
notify => File["${catalina_dir}/webapps/jenkins"],
}
file { "${catalina_dir}/webapps/jenkins":
ensure => 'link',
target => "${catalina_dir}/webapps/jenkins-${jenkins_version}",
notify => Tomcat::Service["jenkins-tomcat${tomcat_major_version}"],
}
$tomcat_other_versions.each |String $version| {
service {"tomcat-jenkins-tomcat${version}":
ensure => stopped,
status => "ps aux | grep \'catalina.base=/opt/apache-tomcat${version}\' | grep -v grep",
stop => "su -s /bin/bash -c \'/opt/apache-tomcat${version}/bin/catalina.sh stop tomcat\'",
before => File["/opt/apache-tomcat${version}"],
}
file {"/opt/apache-tomcat${version}":
ensure => absent,
force => true,
backup => false,
before => Tomcat::Service["jenkins-tomcat${tomcat_major_version}"],
}
}
tomcat::service { "jenkins-tomcat${tomcat_major_version}":
catalina_base => "${catalina_dir}",
catalina_home => "${catalina_dir}",
service_name => "jenkins",
subscribe => Tomcat::War["jenkins-${jenkins_version}.war"],
}
}
elsif $kernel == 'windows' {
include windows_java
remote_file { "C:\apache-tomcat-${tomcat_version}.exe":
ensure => present,
source => "http://apache.spinellicreations.com/tomcat/tomcat-${tomcat_major_version}/v${tomcat_version}/bin/apache-tomcat-${tomcat_version}.exe",
before => Package["Apache Tomcat ${tomcat_major_version}.0 Tomcat${tomcat_major_version} (remove only)"],
}
package { "Apache Tomcat ${tomcat_major_version}.0 Tomcat${tomcat_major_version} (remove only)":
ensure => present,
source => "C:\apache-tomcat-${tomcat_version}.exe",
install_options => ['/S'],
require => Class['windows_java'],
}
service { "tomcat${tomcat_major_version}":
ensure => running,
enable => true,
require => Package["Apache Tomcat ${tomcat_major_version}.0 Tomcat${tomcat_major_version} (remove only)"],
}
remote_file { "C:\Program Files\Apache Software Foundation\Tomcat ${tomcat_major_version}.0\webapps\jenkins.war":
ensure => latest,
source => "http://mirrors.jenkins-ci.org/war/${jenkins_version}/jenkins.war",
require => Service["tomcat${tomcat_major_version}"],
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment