From 6ab036705fc0bac5be9ff0e36cffc84be0ffba60 Mon Sep 17 00:00:00 2001 From: Julien Leduc <julien.leduc@cern.ch> Date: Tue, 19 Dec 2017 12:17:23 +0100 Subject: [PATCH] Adding systemd support for the eos instance --- .../ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh | 43 +++++++++++++------ .../docker/ctafrontend/cc7/rc.local.shared | 7 +++ .../orchestration/create_instance.sh | 2 +- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh index 6c31973bc2..b75b240fc3 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh @@ -109,20 +109,38 @@ echo echo "Limits summary for user daemon:" sudo -u daemon bash -c 'ulimit -a' -# Using jemalloc as specified in -# it-puppet-module-eos: -# code/templates/etc_sysconfig_mgm.erb -# code/templates/etc_sysconfig_mgm_env.erb -# code/templates/etc_sysconfig_fst.erb -# code/templates/etc_sysconfig_fst_env.erb -test -e /usr/lib64/libjemalloc.so.1 && echo "Using jemalloc for EOS processes" -test -e /usr/lib64/libjemalloc.so.1 && export LD_PRELOAD=/usr/lib64/libjemalloc.so.1 - -# start and setup eos for xrdcp to the ${CTA_TEST_DIR} +if [ "-${CI_CONTEXT}-" == '-systemd-' ]; then + # generate eos_env file for systemd + cat /etc/sysconfig/eos | sed -e 's/^export\s*//' > /etc/sysconfig/eos_env + test -e /usr/lib64/libjemalloc.so.1 && echo LD_PRELOAD=/usr/lib64/libjemalloc.so.1 >> /etc/sysconfig/eos_env + + # start eos + systemctl start eos@mq + systemctl start eos@mgm + systemctl start eos@fst + + echo -n "Waiting for eos to start" + for ((i=1;i<20;i++)); do systemctl status eos@{mq,mgm,fst} &>/dev/null && break; sleep 1; echo -n .; done + systemctl status eos@{mq,mgm,fst} &>/dev/null && echo OK || echo FAILED + + systemctl status eos@{mq,mgm,fst} + +else + # Using jemalloc as specified in + # it-puppet-module-eos: + # code/templates/etc_sysconfig_mgm.erb + # code/templates/etc_sysconfig_mgm_env.erb + # code/templates/etc_sysconfig_fst.erb + # code/templates/etc_sysconfig_fst_env.erb + test -e /usr/lib64/libjemalloc.so.1 && echo "Using jemalloc for EOS processes" + test -e /usr/lib64/libjemalloc.so.1 && export LD_PRELOAD=/usr/lib64/libjemalloc.so.1 + + # start and setup eos for xrdcp to the ${CTA_TEST_DIR} #/etc/init.d/eos start /usr/bin/xrootd -n mq -c /etc/xrd.cf.mq -l /var/log/eos/xrdlog.mq -b -Rdaemon /usr/bin/xrootd -n mgm -c /etc/xrd.cf.mgm -m -l /var/log/eos/xrdlog.mgm -b -Rdaemon /usr/bin/xrootd -n fst -c /etc/xrd.cf.fst -l /var/log/eos/xrdlog.fst -b -Rdaemon +fi eos vid enable krb5 eos vid enable sss @@ -184,5 +202,6 @@ test -e /usr/lib64/libjemalloc.so.1 && export LD_PRELOAD=/usr/lib64/libjemalloc. touch /EOSOK -/bin/bash - +if [ "-${CI_CONTEXT}-" == '-nosystemd-' ]; then + /bin/bash +fi diff --git a/continuousintegration/docker/ctafrontend/cc7/rc.local.shared b/continuousintegration/docker/ctafrontend/cc7/rc.local.shared index 3a83e343e9..7cb81181a7 100755 --- a/continuousintegration/docker/ctafrontend/cc7/rc.local.shared +++ b/continuousintegration/docker/ctafrontend/cc7/rc.local.shared @@ -38,3 +38,10 @@ if [ $(echo ${MY_CONTAINER} | grep -s '^taped') ]; then echo "Running /opt/run/bin/taped.sh" &> ${logfile} /opt/run/bin/taped.sh 2>&1 | tee -a ${logfile} fi + +if [ $(echo ${MY_NAME} | grep -s '^ctaeos') ]; then + echo "Running /shared/ctaeos-mgm.sh" &> ${logfile} + /opt/run/bin/ctaeos-mgm.sh 2>&1 | tee -a ${logfile} +fi + +echo "DONE" >> ${logfile} diff --git a/continuousintegration/orchestration/create_instance.sh b/continuousintegration/orchestration/create_instance.sh index 6f82f10f0e..a0a9e6cabd 100755 --- a/continuousintegration/orchestration/create_instance.sh +++ b/continuousintegration/orchestration/create_instance.sh @@ -141,7 +141,7 @@ fi if [ $usesystemd == 1 ] ; then echo "Using systemd to start services on some pods" - for podname in ctafrontend tpsrv; do + for podname in ctafrontend tpsrv ctaeos; do sed -i "/^\ *command:/d" ${poddir}/pod-${podname}*.yaml done fi -- GitLab