Skip to content

Commit

Permalink
managing service scripts and dealing with upgrades
Browse files Browse the repository at this point in the history
adding new parameters to indicate if you manage to manage the service
init scripts or not.

adding new fact rundeck_version

tweaks to better support upgrades
  • Loading branch information
liamjbennett committed Nov 20, 2014
1 parent 73cef86 commit 1b02692
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 114 deletions.
7 changes: 7 additions & 0 deletions .sync.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
spec/spec_helper_acceptance.rb:
dependencies:
- puppetlabs-stdlib
- puppetlabs-inifile
spec/acceptance/nodesets/windows-2008R2-serverstandard-x64.yml:
unmanaged: true
5 changes: 5 additions & 0 deletions files/rundeck_version
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

if [ -x /usr/bin/dpkg ]; then
VERSION=`dpkg -l | grep rundeck | awk '{ print $3}'`
echo "rundeck_version=$VERSION"
fi
10 changes: 10 additions & 0 deletions manifests/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,16 @@
require => File[$properties_dir]
}

ensure_resource('file', ['/etc/facter', '/etc/facter/facts.d'], {'ensure' => 'directory'})

file { '/etc/facter/facts.d/rundeck_version':
ensure => present,
source => 'puppet:///modules/rundeck/rundeck_version',
owner => root,
group => root,
mode => '0755'
}

class { 'rundeck::config::global::framework': } ->
class { 'rundeck::config::global::project': } ->
class { 'rundeck::config::global::rundeck_config': } ->
Expand Down
3 changes: 3 additions & 0 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@
$truststore = $rundeck::params::truststore,
$truststore_password = $rundeck::params::truststore_password,
$service_name = $rundeck::params::service_name,
$service_manage = $rundeck::params::service_manage,
$service_script = $rundeck::params::service_script,
$service_config = $rundeck::params::service_config,
$mail_config = $rundeck::params::mail_config,
$security_config = $rundeck::params::security_config
) inherits rundeck::params {
Expand Down
31 changes: 19 additions & 12 deletions manifests/install.pp
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,31 @@
enabled => '1',
gpgcheck => '0',
priority => '1',
before => Package["rundeck"],
before => Package['rundeck'],
}

ensure_resource('package', "rundeck", {'ensure' => $package_ensure} )
ensure_resource('package', 'rundeck', {'ensure' => $package_ensure} )
}
'Debian': {

$version = inline_template("<% package_version = '${package_ensure}' %><%= package_version.split('-')[0] %>")

exec { 'download rundeck package':
command => "/usr/bin/wget ${package_source}/rundeck-${package_ensure}.deb -O /tmp/rundeck-${package_ensure}.deb",
unless => "/usr/bin/test -f /tmp/rundeck-${package_ensure}.deb"
}
$version = inline_template("<% package_version = '${package_ensure}' %><%= package_version.split('-')[0] %>")

exec { 'install rundeck package':
command => "/usr/bin/dpkg --force-confold -i /tmp/rundeck-${package_ensure}.deb",
unless => "/usr/bin/dpkg -l | grep rundeck | grep ${version}",
require => [ Exec['download rundeck package'], Package[$jre_name] ]
if $::rundeck_version != $version {
exec { 'download rundeck package':
command => "/usr/bin/wget ${package_source}/rundeck-${package_ensure}.deb -O /tmp/rundeck-${package_ensure}.deb",
unless => "/usr/bin/test -f /tmp/rundeck-${package_ensure}.deb"
}

exec { 'stop rundeck service':
command => '/usr/sbin/service rundeckd stop',
unless => "/bin/bash -c 'if ps ax | grep -v grep | grep RunServer > /dev/null; then echo 1; else echo 0; fi'"
}

exec { 'install rundeck package':
command => "/usr/bin/dpkg --force-confold -i /tmp/rundeck-${package_ensure}.deb",
unless => "/usr/bin/dpkg -l | grep rundeck | grep ${version}",
require => [ Exec['download rundeck package'], Exec['stop rundeck service'], Package[$jre_name] ]
}
}

}
Expand Down
4 changes: 4 additions & 0 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
}
}

$service_manage = false
$service_config = ''
$service_script = ''

$rdeck_base = '/var/lib/rundeck'
$service_logs_dir = '/var/log/rundeck'

Expand Down
24 changes: 17 additions & 7 deletions manifests/service.pp
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,34 @@
# It ensure the service is running
#
class rundeck::service(
$service_name = $rundeck::service_name
$service_name = $rundeck::service_name,
$service_manage = $rundeck::service_manage,
$service_script = $rundeck::service_script,
$service_config = $rundeck::service_config
) {

if $caller_module_name != $module_name {
fail("Use of private class ${name} by ${caller_module_name}")
}

file { '/etc/init.d/rundeckd':
ensure => present,
mode => '0755',
content => template('rundeck/init.erb')
if $service_manage {
file { '/etc/init/rundeckd.conf':
ensure => present,
mode => '0644',
content => template($service_config)
}

file { '/etc/init.d/rundeckd':
ensure => present,
mode => '0755',
content => template($service_script)
}
}

service { $service_name:
ensure => running,
enable => true,
hasstatus => true,
hasrestart => true,
require => File['/etc/init.d/rundeckd']
hasrestart => true
}
}
8 changes: 4 additions & 4 deletions spec/acceptance/rundeck_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ class { 'rundeck': }

pp = <<-EOS
class { 'rundeck':
package_version => '2.0.0-1-GA'
package_ensure => '2.0.0-1-GA'
}
EOS

Expand All @@ -78,7 +78,7 @@ class { 'rundeck':

pp = <<-EOS
class { 'rundeck':
package_version => '2.0.0-1.8.GA'
package_ensure => '2.0.0-1.8.GA'
}
EOS

Expand All @@ -97,7 +97,7 @@ class { 'rundeck':
pp = <<-EOS
class { 'rundeck':
jre_name => 'openjdk-7-jre',
jre_version => '7u51-2.4.4-0ubuntu0.12.04.2'
jre_ensure => '7u51-2.4.4-0ubuntu0.12.04.2'
}
EOS

Expand All @@ -112,7 +112,7 @@ class { 'rundeck':
pp = <<-EOS
class { 'rundeck':
jre_name => 'java-1.7.0-openjdk',
jre_version => '1.7.0.51-2.4.4.1.el6_5'
jre_ensure => '1.7.0.51-2.4.4.1.el6_5'
}
EOS

Expand Down
13 changes: 7 additions & 6 deletions spec/spec_helper_acceptance.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@


hosts.each do |host|


version = ENV['PUPPET_GEM_VERSION']
install_puppet(:version => version)
end
Expand All @@ -20,17 +20,18 @@

hosts.each do |host|
c.host = host



path = (File.expand_path(File.dirname(__FILE__)+'/../')).split('/')
name = path[path.length-1].split('-')[1]

copy_module_to(host, :source => proj_root, :module_name => name)


on host, puppet('module','install', forge_repo, "puppetlabs-stdlib"), { :acceptable_exit_codes => [0,1] }

on host, puppet('module','install', forge_repo, "puppetlabs-inifile"), { :acceptable_exit_codes => [0,1] }

end
end
end
85 changes: 0 additions & 85 deletions templates/init.erb

This file was deleted.

0 comments on commit 1b02692

Please sign in to comment.