Commit 2bff201a authored by Holger Levsen's avatar Holger Levsen

reproducible Debian: new script, init_node, to initialize new build nodes

Signed-off-by: Holger Levsen's avatarHolger Levsen <holger@layer-acht.org>
parent 9835ec34
#!/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
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment