From 4ea00e0f75a3498ecc612d1d8152d8423d4c411e Mon Sep 17 00:00:00 2001 From: Alexander Weidinger Date: Fri, 25 Nov 2022 05:17:32 +0100 Subject: [PATCH 1/5] feat(user): make shell configurable --- jenkins/defaults.yaml | 1 + jenkins/init.sls | 2 +- jenkins/osmap.yaml | 3 +++ pillar.example | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jenkins/defaults.yaml b/jenkins/defaults.yaml index 89711c6..f513b13 100644 --- a/jenkins/defaults.yaml +++ b/jenkins/defaults.yaml @@ -11,6 +11,7 @@ jenkins: 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..714b180 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 diff --git a/jenkins/osmap.yaml b/jenkins/osmap.yaml index b33a94d..cba129b 100644 --- a/jenkins/osmap.yaml +++ b/jenkins/osmap.yaml @@ -5,3 +5,6 @@ Debian: RedHat: netcat_pkg: nmap-ncat netcat_flag: --recv-only + +FreeBSD: + shell: /bin/sh 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: From 58f6917ab1d6046e027794dad6fadfa9f93b0e1d Mon Sep 17 00:00:00 2001 From: Alexander Weidinger Date: Fri, 25 Nov 2022 13:23:59 +0100 Subject: [PATCH 2/5] feat(netcat): FreeBSD comes with netcat --- jenkins/cli.sls | 8 +++++++- jenkins/osmap.yaml | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/jenkins/cli.sls b/jenkins/cli.sls index d5b86c8..ff28f7c 100644 --- a/jenkins/cli.sls +++ b/jenkins/cli.sls @@ -3,9 +3,15 @@ {% 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" - timeout: {{ jenkins.cli_timeout }} diff --git a/jenkins/osmap.yaml b/jenkins/osmap.yaml index cba129b..79901fe 100644 --- a/jenkins/osmap.yaml +++ b/jenkins/osmap.yaml @@ -8,3 +8,6 @@ RedHat: FreeBSD: shell: /bin/sh + # FreeBSD comes with nc on board + netcat_pkg: False + netcat_flag: -z From 36800ae652f0b1a13ac3318aa0832736ac980c44 Mon Sep 17 00:00:00 2001 From: Alexander Weidinger Date: Fri, 25 Nov 2022 13:31:20 +0100 Subject: [PATCH 3/5] feat(netcat): make target configurable --- jenkins/cli.sls | 4 ++-- jenkins/defaults.yaml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/jenkins/cli.sls b/jenkins/cli.sls index ff28f7c..dfc671a 100644 --- a/jenkins/cli.sls +++ b/jenkins/cli.sls @@ -13,7 +13,7 @@ jenkins_listening-pkg: 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 @@ -28,7 +28,7 @@ jenkins_serving: - name: "until (curl -I -L {{ jenkins.master_url }}/jnlpJars/jenkins-cli.jar | grep \"Content-Type: application/java-archive\"); do sleep 1; done" - timeout: {{ timeout }} - watch: - - cmd: jenkins_listening + - cmd: jenkins_listening-cmd jenkins_cli_jar: cmd.run: diff --git a/jenkins/defaults.yaml b/jenkins/defaults.yaml index f513b13..f90e9bd 100644 --- a/jenkins/defaults.yaml +++ b/jenkins/defaults.yaml @@ -5,6 +5,7 @@ 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: [] From 2abc9b84ed1013e9b39bc64eea70a8e72b0e90d1 Mon Sep 17 00:00:00 2001 From: Alexander Weidinger Date: Fri, 25 Nov 2022 13:54:44 +0100 Subject: [PATCH 4/5] feat(cli): use configurable cli_timeout --- jenkins/cli.sls | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/jenkins/cli.sls b/jenkins/cli.sls index dfc671a..f6705e9 100644 --- a/jenkins/cli.sls +++ b/jenkins/cli.sls @@ -1,8 +1,6 @@ {% from "jenkins/map.jinja" import jenkins with context %} {% from 'jenkins/macros.jinja' import jenkins_cli with context %} -{% set timeout = 360 %} - {% if jenkins.netcat_pkg %} jenkins_listening-pkg: pkg.installed: @@ -26,7 +24,7 @@ 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 @@ -52,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: From b415d92a319ad27c8f55ca35d6c337b8bc7e6c8f Mon Sep 17 00:00:00 2001 From: Alexander Weidinger Date: Fri, 25 Nov 2022 21:16:17 +0100 Subject: [PATCH 5/5] fix(service): prevent hang on service restart --- jenkins/init.sls | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/jenkins/init.sls b/jenkins/init.sls index 714b180..5ec5d49 100644 --- a/jenkins/init.sls +++ b/jenkins/init.sls @@ -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 = '' %}