diff --git a/manifests/slave.pp b/manifests/slave.pp
index 44d95d455..02c9a38db 100644
--- a/manifests/slave.pp
+++ b/manifests/slave.pp
@@ -172,22 +172,6 @@
Class['java'] -> Service['jenkins-slave']
}
- # customizations based on the OS family
- case $facts['os']['family'] {
- 'Archlinux': {
- $defaults_location = '/etc/conf.d'
- }
- 'Darwin': {
- $defaults_location = $slave_home
- }
- 'Debian': {
- $defaults_location = '/etc/default'
- }
- default: {
- $defaults_location = '/etc/sysconfig'
- }
- }
-
case $facts['kernel'] {
'Linux': {
$service_name = 'jenkins-slave'
@@ -195,6 +179,21 @@
$defaults_group = 'root'
$manage_user_home = true
+ $defaults_location = $facts['os']['family'] ? {
+ 'Archlinux' => '/etc/conf.d',
+ 'Debian' => '/etc/default',
+ default => '/etc/sysconfig',
+ }
+
+ file { "${defaults_location}/jenkins-slave":
+ ensure => 'file',
+ mode => '0600',
+ owner => $defaults_user,
+ group => $defaults_group,
+ content => template("${module_name}/jenkins-slave-defaults.erb"),
+ notify => Service['jenkins-slave'],
+ }
+
file { "${slave_home}/${service_name}-run":
content => template("${module_name}/${service_name}-run.erb"),
owner => $slave_user,
@@ -214,17 +213,9 @@
$defaults_group = 'wheel'
$manage_user_home = false
- file { "${slave_home}/start-slave.sh":
- ensure => 'file',
- content => template("${module_name}/start-slave.sh.erb"),
- mode => '0755',
- owner => 'root',
- group => 'wheel',
- }
-
file { '/Library/LaunchDaemons/org.jenkins-ci.slave.jnlp.plist':
ensure => 'file',
- content => template("${module_name}/org.jenkins-ci.slave.jnlp.plist.erb"),
+ content => template("${module_name}/org.jenkins-ci.slave.jnlp.plist.epp"),
mode => '0644',
owner => 'root',
group => 'wheel',
@@ -264,15 +255,6 @@
}
}
- file { "${defaults_location}/jenkins-slave":
- ensure => 'file',
- mode => '0600',
- owner => $defaults_user,
- group => $defaults_group,
- content => template("${module_name}/jenkins-slave-defaults.erb"),
- notify => Service['jenkins-slave'],
- }
-
if ($manage_client_jar) {
archive { 'get_swarm_client':
source => "${client_url}/${client_jar}",
diff --git a/templates/org.jenkins-ci.slave.jnlp.plist.epp b/templates/org.jenkins-ci.slave.jnlp.plist.epp
new file mode 100644
index 000000000..fd65e485e
--- /dev/null
+++ b/templates/org.jenkins-ci.slave.jnlp.plist.epp
@@ -0,0 +1,94 @@
+
+
+
+
+ <% if $jenkins::slave::quoted_ui_pass { -%>
+ EnvironmentVariables
+
+ JENKINS_PASSWORD
+ <%= $jenkins::slave::quoted_ui_pass -%>
+
+ <% } -%>
+ Label
+ org.jenkins-ci.slave.jnlp
+ ProgramArguments
+
+ /usr/bin/java
+ <% unless empty($jenkins::slave::java_args) { -%>
+ <%= join($jenkins::slave::java_args, ' ') -%>
+ <% } -%>
+ -jar
+ <%= $jenkins::slave::slave_home -%>/<%= $jenkins::slave::client_jar -%>
+ <% if $jenkins::slave::slave_mode { -%>
+ -mode
+ <%= $jenkins::slave::slave_mode -%>
+ <% } -%>
+ <% if $jenkins::slave::executors { -%>
+ -executors
+ <%= $jenkins::slave::executors -%>
+ <% } -%>
+ <% if $jenkins::slave::quoted_ui_user { -%>
+ -username
+ <%= $jenkins::slave::quoted_ui_user -%>
+ <% } -%>
+ <% if $jenkins::slave::quoted_ui_pass { -%>
+ -passwordEnvVariable
+ JENKINS_PASSWORD
+ <% } -%>
+ <% if $jenkins::slave::slave_name { -%>
+ -name
+ <%= $jenkins::slave::slave_name -%>
+ <% } -%>
+ <% if $jenkins::slave::masterurl { -%>
+ -master
+ <%= $jenkins::slave::masterurl -%>
+ <% } -%>
+ <% if $jenkins::slave::slave_home { -%>
+ -fsroot
+ <%= $jenkins::slave::slave_home -%>
+ <% } -%>
+ <% if $jenkins::slave::disable_clients_unique_id { -%>
+ -disableClientsUniqueId
+ <% } -%>
+ <% if $jenkins::slave::disable_ssl_verification { -%>
+ -disableSslVerification
+ <% } -%>
+ <% if $jenkins::slave::delete_existing_clients { -%>
+ -deleteExistingClients
+ <% } -%>
+ <% if $jenkins::slave::description { -%>
+ -description
+ <%= $jenkins::slave::description -%>
+ <% } -%>
+ <% if $jenkins::slave::autodiscoveryaddress { -%>
+ -autoDiscoveryAddress
+ <%= $jenkins::slave::autodiscoveryaddress -%>
+ <% } -%>
+ <% if $jenkins::slave::_real_tool_locations { -%>
+ <% $jenkins::slave::_real_tool_locations.each |$location| { -%>
+ -toolLocation
+ <%= $location -%>
+ <% } -%>
+ <% } -%>
+ <% unless empty($jenkins::slave::swarm_client_args) { -%>
+ <%= join($jenkins::slave::swarm_client_args, ' ') -%>
+ <% } -%>
+
+ KeepAlive
+
+ RunAtLoad
+
+ UserName
+ <%= $jenkins::slave::slave_user %>
+ WorkingDirectory
+ <%= $jenkins::slave::slave_home %>
+ SessionCreate
+
+ StandardInPath
+ /dev/null
+ StandardErrorPath
+ /var/log/jenkins/org.jenkins-ci.slave.jnlp.log
+ StandardOutPath
+ /var/log/jenkins/org.jenkins-ci.slave.jnlp.log
+
+
diff --git a/templates/org.jenkins-ci.slave.jnlp.plist.erb b/templates/org.jenkins-ci.slave.jnlp.plist.erb
deleted file mode 100644
index 829ad5ebd..000000000
--- a/templates/org.jenkins-ci.slave.jnlp.plist.erb
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- Label
- org.jenkins-ci.slave.jnlp
- ProgramArguments
-
- <%= @slave_home %>/start-slave.sh
-
- KeepAlive
-
- RunAtLoad
-
- UserName
- <%= @slave_user %>
- WorkingDirectory
- <%= @slave_home %>
- SessionCreate
-
- StandardInPath
- /dev/null
- StandardErrorPath
- /var/log/jenkins/org.jenkins-ci.slave.jnlp.log
- StandardOutPath
- /var/log/jenkins/org.jenkins-ci.slave.jnlp.log
-
-
diff --git a/templates/start-slave.sh.erb b/templates/start-slave.sh.erb
deleted file mode 100644
index aecffa11a..000000000
--- a/templates/start-slave.sh.erb
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env bash
-
-source <%= @defaults_location %>/jenkins-slave
-$JAVA -jar <%= @slave_home %>/<%= @client_jar %> $JENKINS_SLAVE_ARGS