summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinit_node43
-rwxr-xr-xupdate_jdn.sh20
2 files changed, 45 insertions, 18 deletions
diff --git a/init_node b/init_node
new file mode 100755
index 00000000..89a1fbb6
--- /dev/null
+++ b/init_node
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# Copyright 2014-2017 Holger Levsen <holger@layer-acht.org>
+#
+# released under the GPLv=2
+#
+# initial setup for new build nodes
+
+START=$(date +'%s')
+GIT_REPO="git://anonscm.debian.org/qa/jenkins.debian.net.git"
+
+echo
+echo -n "$(date) - "
+set -e
+export LANG=C
+sudo addgroup --system jenkins
+sudo adduser --system --shell /bin/bash --home /var/lib/jenkins --ingroup jenkins --disabled-login jenkins
+sudo addgroup --system jenkins-adm
+sudo adduser --system --shell /bin/bash --home /home/jenkins-adm --ingroup jenkins-adm --disabled-login jenkins-adm
+sudo usermod -G jenkins jenkins-adm
+sudo mkdir /home/jenkins-adm
+sudo chown jenkins-adm.jenkins-adm /home/jenkins-adm
+
+cd ~jenkins-adm
+if [ ! -d jenkins.debian.net ]; then
+ [ -x /usr/bin/git ] || sudo apt-get install -y git
+ sudo -u jenkins-adm git clone $GIT_REPO
+ cd jenkins.debian.net
+else
+ cd jenkins.debian.net
+
+ sudo -u jenkins-adm git pull $GIT_REPO
+fi
+./update_jdn.sh 2>&1 | sudo tee -a /var/log/jenkins/update_jdn.log
+
+END=$(date +'%s')
+DURATION=$(( $END - $START ))
+HOUR=$(echo "$DURATION/3600"|bc)
+MIN=$(echo "($DURATION-$HOUR*3600)/60"|bc)
+SEC=$(echo "$DURATION-$HOUR*3600-$MIN*60"|bc)
+echo "$(date) - total duration: ${HOUR}h ${MIN}m ${SEC}s."
+echo
+
diff --git a/update_jdn.sh b/update_jdn.sh
index fd40d0d8..8c8d403f 100755
--- a/update_jdn.sh
+++ b/update_jdn.sh
@@ -18,6 +18,8 @@
#
# so, yes, patches welcome. saying this is crap alone is not helpful,
# nor is just suggesting some new or old technology. patches most welcome!
+#
+# that said, there's a new one: init_node ;)
set -e
@@ -84,25 +86,7 @@ esac
#
# set up users and groups
#
-if ! getent passwd jenkins > /dev/null ; then
- sudo addgroup --system jenkins
- sudo adduser --system --shell /bin/bash --home /var/lib/jenkins --ingroup jenkins --disabled-login jenkins
-fi
-if ! getent group jenkins-adm > /dev/null ; then
- sudo addgroup --system jenkins-adm
-fi
-if ! getent passwd jenkins-adm > /dev/null ; then
- sudo adduser --system --shell /bin/bash --home /home/jenkins-adm --ingroup jenkins-adm --disabled-login jenkins-adm
- sudo usermod -G jenkins jenkins-adm
-fi
-if [ ! -d /home/jenkins-adm ]; then
- sudo mkdir /home/jenkins-adm
- sudo chown jenkins-adm.jenkins-adm /home/jenkins-adm
-fi
-
-
declare -A user_host_groups u_shell
-
sudo_groups='jenkins,jenkins-adm,sudo,adm'
# if there's a need for host groups, a case statement on $HOSTNAME here that sets $GROUPNAME, say, should do the trick