diff --git a/jenkins/cli.sls b/jenkins/cli.sls index d5b86c8..f6705e9 100644 --- a/jenkins/cli.sls +++ b/jenkins/cli.sls @@ -1,13 +1,17 @@ {% from "jenkins/map.jinja" import jenkins with context %} {% from 'jenkins/macros.jinja' import jenkins_cli with context %} -{% set timeout = 360 %} - -jenkins_listening: +{% if jenkins.netcat_pkg %} +jenkins_listening-pkg: pkg.installed: - name: {{ jenkins.netcat_pkg }} + - require_in: + - cmd: jenkins_listening-cmd +{% endif %} + +jenkins_listening-cmd: cmd.wait: - - name: "until nc {{ jenkins.netcat_flag }} localhost {{ jenkins.jenkins_port }}; do sleep 1; done" + - name: "until nc {{ jenkins.netcat_flag }} {{ jenkins.netcat_target }} {{ jenkins.jenkins_port }}; do sleep 1; done" - timeout: {{ jenkins.cli_timeout }} - require: - service: jenkins @@ -20,9 +24,9 @@ jenkins_serving: cmd.wait: - name: "until (curl -I -L {{ jenkins.master_url }}/jnlpJars/jenkins-cli.jar | grep \"Content-Type: application/java-archive\"); do sleep 1; done" - - timeout: {{ timeout }} + - timeout: {{ jenkins.cli_timeout }} - watch: - - cmd: jenkins_listening + - cmd: jenkins_listening-cmd jenkins_cli_jar: cmd.run: @@ -46,7 +50,7 @@ reload_jenkins_config: jenkins_responding: cmd.wait: - name: "until {{ jenkins_cli('who-am-i') }}; do sleep 1; done" - - timeout: {{ timeout }} + - timeout: {{ jenkins.cli_timeout }} - watch: - cmd: jenkins_cli_jar - require: diff --git a/jenkins/defaults.yaml b/jenkins/defaults.yaml index 89711c6..f90e9bd 100644 --- a/jenkins/defaults.yaml +++ b/jenkins/defaults.yaml @@ -5,12 +5,14 @@ jenkins: deb_apt_source: /etc/apt/sources.list.d/jenkins-ci.list netcat_pkg: netcat-openbsd netcat_flag: -z + netcat_target: localhost user: jenkins group: jenkins extra_groups: [] nginx_user: www-data nginx_group: www-data home: /var/lib/jenkins + shell: /bin/bash daemon: /usr/bin/daemon java_args: -Djava.awt.headless=true java_executable: /usr/bin/java diff --git a/jenkins/init.sls b/jenkins/init.sls index 07c451e..5ec5d49 100644 --- a/jenkins/init.sls +++ b/jenkins/init.sls @@ -17,7 +17,7 @@ jenkins_user: {% endfor %} - system: True - home: {{ jenkins.home }} - - shell: /bin/bash + - shell: {{ jenkins.shell }} - require: - group: jenkins_group @@ -33,6 +33,14 @@ jenkins_user: - group: jenkins_group {% endfor %} +{% if grains['os_family'] in ['FreeBSD'] %} +jenkins-sysrc-args: + sysrc.managed: + - name: jenkins_args + # Prevent hang on service restart + - value: '> /dev/null 2>&1' +{% endif %} + jenkins: {% if grains['os_family'] in ['RedHat', 'Debian'] %} {% set repo_suffix = '' %} diff --git a/jenkins/osmap.yaml b/jenkins/osmap.yaml index b33a94d..79901fe 100644 --- a/jenkins/osmap.yaml +++ b/jenkins/osmap.yaml @@ -5,3 +5,9 @@ Debian: RedHat: netcat_pkg: nmap-ncat netcat_flag: --recv-only + +FreeBSD: + shell: /bin/sh + # FreeBSD comes with nc on board + netcat_pkg: False + netcat_flag: -z diff --git a/pillar.example b/pillar.example index 77decc9..c16c40b 100644 --- a/pillar.example +++ b/pillar.example @@ -3,6 +3,7 @@ jenkins: jenkins_port: 8080 port: 80 home: /var/lib/jenkins + shell: /bin/bash user: jenkins group: jenkins extra_groups: