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