diff options
-rwxr-xr-x | init_node | 43 | ||||
-rwxr-xr-x | update_jdn.sh | 20 |
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 |