-lpthread -lglite_security_gss_${thrflavour}
endif
+ifeq ($(os_type),debian)
+sysdefaultdir=${sysconfdir}/default
+else
+sysdefaultdir=${sysconfdir}/sysconfig
+endif
+
ifneq ($(GLITE_LB_HARVESTER_WITH_LBU_DB),no)
CPPFLAGS:=$(CPPFLAGS) -DWITH_LBU_DB=1
LIBS:=$(LIBS) -lglite_lbu_db
if echo "${localstatedir}" | grep 'glite'>/dev/null; then \
glite_var="${localstatedir}"; \
fi; \
- sed -e 's:@glite_prefix@:${sysroot}${prefix}:' -e 's:@glite_etc@:${sysconfdir}:' -e "s:@glite_var@:$$glite_var:" $< > $@
+ sed -e 's:@glite_prefix@:${sysroot}${prefix}:g' -e 's:@glite_etc@:${sysconfdir}:g' -e "s:@glite_var@:$$glite_var:g" -e 's:@defaultdir@:${sysdefaultdir}:g' $< > $@
chmod +x $@
check:
# limitations under the License.
#
-GLITE_LB_LOCATION=${GLITE_LB_LOCATION:-'@glite_prefix@'}
-GLITE_LB_LOCATION_ETC=${GLITE_LB_LOCATION_ETC:-'@glite_etc@'}
+GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'}
+GLITE_LOCATION_ETC=${GLITE_LOCATION_ETC:-'@glite_etc@'}
GLITE_LB_LOCATION_VAR=${GLITE_LB_LOCATION_VAR:-'@glite_var@'}
+GLITE_USER=${GLITE_USER:-'glite'}
+GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6`
+GLITE_HOST_CERT=${GLITE_HOST_CERT:-"$GLITE_HOME/.certs/hostcert.pem"}
+GLITE_HOST_KEY=${GLITE_HOST_KEY:-"$GLITE_HOME/.certs/hostkey.pem"}
[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh
[ -f /etc/glite.conf ] && . /etc/glite.conf
-[ -f $GLITE_LB_LOCATION_ETC/glite-wms.conf ] && . $GLITE_LB_LOCATION_ETC/glite-wms.conf
-
-[ -f $GLITE_LB_LOCATION/lb.conf ] && . $GLITE_LB_LOCATION_ETC/lb.conf
-[ -f $GLITE_LB_LOCATION_VAR/etc/lb.conf ] && . $GLITE_LB_LOCATION_VAR/etc/lb.conf
-
+[ -f $GLITE_LOCATION_ETC/glite-wms.conf ] && . $GLITE_LOCATION_ETC/glite-wms.conf
+[ -f @defaultdir@/glite-lb ] && . @defaultdir@/glite-lb
[ -f $HOME/.glite.conf ] && . $HOME/.glite.conf
pidfile=${GLITE_LB_HARVESTER_PIDFILE:-"$GLITE_LB_LOCATION_VAR/glite-lb-harvester.pid"}
# database or configuration file needed
# (using the file as default)
-etc=$GLITE_LB_LOCATION/glite-lb
+etc=$GLITE_LOCATION_ETC/glite-lb
[ -z "$GLITE_LB_HARVESTER_DBCS" -a -z "$GLITE_LB_HARVESTER_CONFIG" ] && GLITE_LB_HARVESTER_CONFIG=$etc/harvester.conf
if [ -n "$GLITE_LB_HARVESTER_CONFIG" ]; then
[ ! -d "$etc" ] && mkdir -p "$etc"
start()
{
- if test -z "$GLITE_USER" ;then
- echo 'Error: GLITE_USER is not set'
- echo FAILED
- return 1
- fi
-
- log4c="LOG4C_RCPATH='$GLITE_LB_LOCATION_ETC/glite-lb'"
+ log4c="LOG4C_RCPATH='$GLITE_LOCATION_ETC/glite-lb'"
[ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
[ -n "$GLITE_LB_HARVESTER_PORT" ] && port="-p $GLITE_LB_HARVESTER_PORT"
- start_daemon glite-lb-harvester "$pidfile" "$GLITE_LB_LOCATION/bin/glite-lb-harvester \
+ start_daemon glite-lb-harvester "$pidfile" "$GLITE_LOCATION/bin/glite-lb-harvester \
$creds $conf -i $pidfile -d $level $port --daemon\
$GLITE_LB_HARVESTER_OTHER_OPTIONS" "$HARVESTER_NOTIFSFILE"
}
done
[ -f /etc/glite.conf ] && . /etc/glite.conf
+ [ -f /etc/default/glite-lb ] && . /etc/default/glite-lb
+ [ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb
[ -f $HOME/.glite.conf ] && . $HOME/.glite.conf
if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ] ;then
default_flavour=_${nothrflavour}
endif
+ifeq ($(os_type),debian)
+sysdefaultdir=${sysconfdir}/default
+else
+sysdefaultdir=${sysconfdir}/sysconfig
+endif
+
all compile: ${PLUGIN_LIB} ${EXAMPLES} ${SCRIPTS}
${PLUGIN_LIB}: ${PLUGIN_LOBJS}
${COMPILEXX} -c $< -o $@
%.new: %.in
- sed -e 's:@glite_prefix@:${sysroot}${prefix}:' -e 's:@glite_etc@:${sysconfdir}:' $< > $@
+ sed -e 's:@glite_prefix@:${sysroot}${prefix}:g' -e 's:@glite_etc@:${sysconfdir}:g' -e 's:@defaultdir@:${sysdefaultdir}:g' $< > $@
clean:
rm -rvf .libs/ *.o *.lo ${PLUGIN_LIB} ${MAN_GZ} ${EXAMPLES} ${SCRIPTS}
#! /bin/bash
test -f /etc/profile.d/grid-env.sh && . /etc/profile.d/grid-env.sh
+test -f @defaultdir@/glite-lb && . @defaultdir@/glite-lb
GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'}
LCG_GFAL_INFOSYS=${LCG_GFAL_INFOSYS:-'lcg-bdii.cern.ch:2170'}
DL_LIBS=-ldl
endif
+ifeq ($(os_type),debian)
+sysdefaultdir=${sysconfdir}/default
+else
+sysdefaultdir=${sysconfdir}/sysconfig
+endif
+
DEBUG:=-g -O0
CFLAGS:=${DEBUG} \
-I${stagedir}${prefix}/include -I${top_srcdir}/src -I${top_srcdir}/interface \
if echo "${localstatedir}" | grep 'glite'>/dev/null; then \
glite_var="${localstatedir}"; \
fi; \
- sed -e 's:@glite_prefix@:${sysroot}${prefix}:' -e 's:@glite_etc@:${sysconfdir}:' -e "s:@glite_var@:$$glite_var:" $< > $@
+ sed -e 's:@glite_prefix@:${sysroot}${prefix}:g' -e 's:@glite_etc@:${sysconfdir}:g' -e "s:@glite_var@:$$glite_var:g" -e 's:@defaultdir@:${sysdefaultdir}:g' $< > $@
chmod +x $@
glite-lb-logd: ${LOGD_OBJS}
# limitations under the License.
#
-GLITE_LB_LOCATION=${GLITE_LB_LOCATION:-'@glite_prefix@'}
-GLITE_LB_LOCATION_ETC=${GLITE_LB_LOCATION_ETC:-'@glite_etc@'}
+GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'}
+GLITE_LOCATION_ETC=${GLITE_LOCATION_ETC:-'@glite_etc@'}
GLITE_LB_LOCATION_VAR=${GLITE_LB_LOCATION_VAR:-'@glite_var@'}
+GLITE_USER=${GLITE_USER:-'glite'}
+GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6`
+GLITE_HOST_CERT=${GLITE_HOST_CERT:-"$GLITE_HOME/.certs/hostcert.pem"}
+GLITE_HOST_KEY=${GLITE_HOST_KEY:-"$GLITE_HOME/.certs/hostkey.pem"}
KRB5_KTNAME="FILE:/var/glite/krb5kt_lb"
KRB5CCNAME="FILE:/var/glite/krb5cc_lb"
-LOG4C_RCPATH="$GLITE_LB_LOCATION_ETC/glite-lb"
+LOG4C_RCPATH="$GLITE_LOCATION_ETC/glite-lb"
[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh
[ -f /etc/glite.conf ] && . /etc/glite.conf
-[ -f $GLITE_LB_LOCATION_ETC/glite-wms.conf ] && . $GLITE_LB_LOCATION_ETC/glite-wms.conf
-
-[ -f $GLITE_LB_LOCATION_ETC/lb.conf ] && . $GLITE_LB_LOCATION_ETC/lb.conf
-[ -f $GLITE_LB_LOCATION_VAR/etc/lb.conf ] && . $GLITE_LB_LOCATION_VAR/etc/lb.conf
-
+[ -f $GLITE_LOCATION_ETC/glite-wms.conf ] && . $GLITE_LOCATION_ETC/glite-wms.conf
+[ -f @defaultdir@/glite-lb ] && . @defaultdir@/glite-lb
[ -f $HOME/.glite.conf ] && . $HOME/.glite.conf
LL_PIDFILE=${LL_PIDFILE:-$GLITE_LB_LOCATION_VAR/glite-lb-logd.pid}
return 0
esac
- if test -z "$GLITE_USER" ;then
- echo 'Error: GLITE_USER is not set'
- echo FAILED
- return 1
- fi
-
if [ -n "$LOG4C_RCPATH" ]; then env="$env LOG4C_RCPATH='$LOG4C_RCPATH'"; fi
if [ -n "$KRB5_KTNAME" ]; then env="$env KRB5_KTNAME='$KRB5_KTNAME'"; fi
if [ -n "$KRB5CCNAME" ]; then env="$env KRB5CCNAME='$KRB5CCNAME'"; fi
mkdir -p /var/glite/log
chown $GLITE_USER /var/glite/log
(cd /tmp && ls -f /tmp |grep ^dglogd_sock_ |xargs rm -f)
- start_daemon "glite-lb-logd" "$LL_PIDFILE" "$GLITE_LB_LOCATION/bin/glite-lb-logd \
+ start_daemon "glite-lb-logd" "$LL_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-logd \
-i $LL_PIDFILE $port $sock $fprefix"
- start_daemon "glite-lb-interlogd" "$IL_PIDFILE" "$GLITE_LB_LOCATION/bin/glite-lb-interlogd \
+ start_daemon "glite-lb-interlogd" "$IL_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-interlogd \
-i $IL_PIDFILE $sock $fprefix" "$IL_SOCKFILE"
}
version=${module.version}
SOURCES=\
- config/glite-lb-* config/my.cnf config/site-notif.conf config/startup \
+ config/glite-lb* config/my.cnf config/*.conf config/startup config/setup \
doc/*.1 doc/*.8 \
interface/*.h \
src/*.c src/*.cpp src/*.h src/*.c.T src/*.l src/*.y src/*.sh src/ws_typemap.dat \
project/.post* project/.pre* \
test/*.cpp test/*.cpp.T test/*.sh test/oneJob.qry test/*.c \
LICENSE Makefile
-SOURCES_EXEC=config/startup src/*.sh test/*.sh
+SOURCES_EXEC=config/startup config/setup src/*.sh test/*.sh
all: compile
WS_CFLAGS=
endif
+ifeq ($(os_type),debian)
+sysdefaultdir=${sysconfdir}/default
+else
+sysdefaultdir=${sysconfdir}/sysconfig
+endif
+
GSOAP_FILES_PREFIX:= bk_ws_
YACC=bison -y
TESTS=test_coverage test_xml test_query_events test_soap_conv test_query_parse
-SCRIPTS=startup glite-lb-server-purge.cron glite-lb-proxy-purge.cron glite-lb-notif-keeper.cron
+SCRIPTS=startup setup glite-lb-server-purge.cron glite-lb-proxy-purge.cron glite-lb-notif-keeper.cron glite-lb
SCRIPTS_SRC=$(addprefix ${top_srcdir}/config/,${SCRIPTS})
glite-lb-bkserverd: ${NSMAP} ${BKSERVER_OBJS}
if echo "${localstatedir}" | grep 'glite'>/dev/null; then \
glite_var="${localstatedir}"; \
fi; \
- sed -e 's:@glite_prefix@:${sysroot}${prefix}:' -e 's:@glite_etc@:${sysconfdir}:' -e "s:@glite_var@:$$glite_var:" ${top_srcdir}/config/$@ > $@
+ sed -e 's:@glite_prefix@:${sysroot}${prefix}:g' -e 's:@glite_etc@:${sysconfdir}:g' -e "s:@glite_var@:$$glite_var:g" -e 's:@defaultdir@:${sysdefaultdir}:g' ${top_srcdir}/config/$@ > $@
check: compile test.xml test.query test.query_parse
-echo check.query not complete yet
${INSTALL} -m 644 ${top_srcdir}/config/site-notif.conf ${DESTDIR}${PREFIX}${sysconfdir}/glite-lb
${INSTALL} -m 755 startup ${DESTDIR}${PREFIX}${sysconfdir}/init.d/glite-lb-bkserverd
+ ${INSTALL} -m 755 setup ${DESTDIR}${PREFIX}${prefix}/sbin/glite-lb-setup
${INSTALL} -m 644 glite-lb-server-purge.cron ${DESTDIR}${PREFIX}${sysconfdir}/cron.d/glite-lb-server-purge
${INSTALL} -m 644 glite-lb-proxy-purge.cron ${DESTDIR}${PREFIX}${sysconfdir}/cron.d/glite-lb-proxy-purge
${INSTALL} -m 644 glite-lb-notif-keeper.cron ${DESTDIR}${PREFIX}${sysconfdir}/cron.d/glite-lb-notif-keeper
${INSTALL} -m 644 ${top_srcdir}/config/glite-lb-server.logrotate ${DESTDIR}${PREFIX}${sysconfdir}/logrotate.d/glite-lb-server
${INSTALL} -m 644 ${top_srcdir}/config/my.cnf ${DESTDIR}${PREFIX}${sysconfdir}/mysql/conf.d/glite-lb-server.cnf
+ ${INSTALL} -m 644 glite-lb ${DESTDIR}${PREFIX}${prefix}/share/doc/${package}-${version}/glite-lb
mkdir -p ${DESTDIR}${PREFIX}${prefix}/include/${globalprefix}/${lbprefix}
(cd ${top_srcdir}/interface && install -m 644 ${HDRS} ${DESTDIR}${PREFIX}${prefix}/include/${globalprefix}/${lbprefix})
--- /dev/null
+#
+# setting for L&B
+#
+# copy this file to @defaultdir@
+#
+
+#
+# system settings
+#
+
+#GLITE_LOCATION=@glite_prefix@
+#GLITE_LOCATION_ETC='@glite_etc@'
+#GLITE_LB_LOCATION_VAR='@glite_var@'
+
+# query timeout
+GLITE_WMS_QUERY_TIMEOUT=300
+# CA certificates directory
+#X509_CERT_DIR='/etc/grid-security/certificates'
+# VOMS directory
+#X509_VOMS_DIR='/etc/grid-security/vomsdir'
+#GLITE_HOST_CERT='/var/glite/.certs/hostcert.pem'
+#GLITE_HOST_KEY='/var/glite/.certs/hostkey.pem'
+
+#
+# purge and exports
+#
+
+# purge timeouts
+GLITE_LB_EXPORT_PURGE_ARGS='--cleared 2d --aborted 15d --cancelled 15d --other 60d'
+
+#
+# L&B configuration
+#
+
+# L&B service type (server/proxy/both)
+#GLITE_LB_TYPE=server
+# MSG publish
+#GLITE_LB_MSG_BROKER='true'
+# PROD - production, TEST-NWOB - testing
+#GLITE_LB_MSG_NETWORK='PROD'
+#LCG_GFAL_INFOSYS='lcg-bdii.cern.ch:2170'
+#GLITE_LB_INDEX_OWNER=
+# configure glite-LB to be used with Real Time Monitor (harvester)
+#GLITE_LB_RTM_ENABLED='false'
+# start-up L&B notifications harvester
+#GLITE_LB_HARVESTER_ENABLED='false'
+
+#
+# L&B authorizations (items in list separated by comma)
+#
+
+#GLITE_LB_SUPER_USERS=
+#GLITE_LB_WMS_DN=
+GLITE_LB_RTM_DN='/C=UK/O=eScience/OU=Imperial/L=Physics/CN=heppc24.hep.ph.ic.ac.uk/Email=janusz.martyniak@imperial.ac.uk'
+#GLITE_LB_AUTHZ_ADMIN_ACCESS=
+#GLITE_LB_AUTHZ_READ_ALL=
+#GLITE_LB_AUTHZ_PURGE=
+#GLITE_LB_AUTHZ_STATUS_FOR_MONITORING=
+#GLITE_LB_AUTHZ_GET_STATISTICS=
+#GLITE_LB_AUTHZ_GRANT_OWNERSHIP=
+#GLITE_LB_AUTHZ_REGISTER_JOBS=".*"
+#GLITE_LB_AUTHZ_LOG_WMS_EVENTS=".*"
+#GLITE_LB_AUTHZ_LOG_CE_EVENTS=".*"
+#GLITE_LB_AUTHZ_LOG_GENERAL_EVENTS=".*"
+
+#
+# additional options
+#
+
+# bkserver additional options
+#GLITE_LB_SERVER_OTHER_OPTIONS=--greyjobs --html-header @glite_etc@/glite-lb/html-header.html --gridmap-file @glite_etc@/glite-lb/gridmap
+# notification interlogger additional options
+#GLITE_LB_NOTIF_IL_OTHER_OPTIONS=
+# proxy interlogger additional options
+#GLITE_LB_PROXY_IL_OTHER_OPTIONS=
+# harvester additional options
+#GLITE_LB_HARVESTER_OTHER_OPTIONS=
--- /dev/null
+#!/bin/sh
+
+[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh
+[ -f @defaultdir@/glite-lb ] && . @defaultdir@/glite-lb
+
+GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'}
+GLITE_LOCATION_ETC=${GLITE_LOCATION_ETC:-'@glite_etc@'}
+GLITE_USER=${GLITE_USER:-'glite'}
+MYSQL_USER=${MYSQL_USER:-'root'}
+#MYSQL_PASSWORD=
+GLITE_LB_MSG_BROKER=${GLITE_LB_MSG_BROKER:-'true'}
+GLITE_LB_MSG_NETWORK=${GLITE_LB_MSG_NETWORK:-'PROD'}
+LCG_GFAL_INFOSYS=${LCG_GFAL_INFOSYS:-'lcg-bdii.cern.ch:2170'}
+GLITE_LB_RTM_DN=${GLITE_LB_RTM_DN:-'/C=UK/O=eScience/OU=Imperial/L=Physics/CN=heppc24.hep.ph.ic.ac.uk/Email=janusz.martyniak@imperial.ac.uk'}
+GLITE_LB_AUTHZ_REGISTER_JOBS=${GLITE_LB_AUTHZ_REGISTER_JOBS:-'.*'}
+GLITE_LB_AUTHZ_LOG_WMS_EVENTS=${GLITE_LB_AUTHZ_LOG_WMS_EVENTS:-'.*'}
+GLITE_LB_AUTHZ_LOG_CE_EVENTS=${GLITE_LB_AUTHZ_LOG_CE_EVENTS:-'.*'}
+GLITE_LB_AUTHZ_LOG_GENERAL_EVENTS=${GLITE_LB_AUTHZ_LOG_GENERAL_EVENTS:-'.*'}
+
+GLITE_HOME_DIR=`getent passwd ${GLITE_USER} | cut -d: -f6`
+
+
+qecho() {
+ if test "$quiet" != "1"; then
+ echo "glite-lb-setup: $@"
+ fi
+}
+
+
+check_mysql_connection() {
+ # check the mysql connection
+ MYSQL_ARGS="-u $MYSQL_USER"
+ if ! mysqladmin ping $MYSQL_ARGS >/tmp/glite-setup.$$ 2>&1; then
+ if test -n "$MYSQL_PASSWORD" && mysqladmin ping $MYSQL_ARGS -p$MYSQL_PASSWORD 2>/tmp/glite-setup.$$ 2>&1; then
+ MYSQL_ARGS="$MYSQL_ARGS -p$MYSQL_PASSWORD"
+ else
+ return 1
+ fi
+ fi
+ rm -f /tmp/glite-setup.$$
+}
+
+
+config_glite_lb_authz() {
+ superusers="$1"
+ rtm="$2"
+ wms="$GLITE_LB_WMS_DN"
+
+ authconf="$GLITE_LOCATION_ETC/glite-lb/glite-lb-authz.conf"
+
+ cat <<EOF > "$authconf".new
+resource "LB" {
+EOF
+ for section in ADMIN_ACCESS STATUS_FOR_MONITORING GET_STATISTICS REGISTER_JOBS READ_ALL PURGE GRANT_OWNERSHIP LOG_WMS_EVENTS LOG_CE_EVENTS LOG_GENERAL_EVENTS; do
+ eval value=\"$`echo GLITE_LB_AUTHZ_$section`\"
+ case "$section" in
+ ADMIN_ACCESS) value="$value,$superusers" ;;
+ GET_STATISTICS) value="$value,$wms" ;;
+ READ_ALL) value="$value,$wms,$rtm" ;;
+ PURGE) value="$value,$wms" ;;
+ LOG_WMS_EVENTS) value="$value,$wms" ;;
+ esac
+ value="`echo \"$value\" | tr ',' '\n' | grep -v ^$ | sed 's/\(.*\)/\trule permit {\n\t\tsubject = \"\1\"\n\t}/'`"
+ cat <<EOF >> "$authconf".new
+
+action "$section" {
+$value
+}
+EOF
+ done
+ cat <<EOF >> "$authconf".new
+
+}
+EOF
+
+ # something changed
+ if test -f "$authconf"; then
+ diff -w "$authconf" "$authconf".new >/dev/null
+ if test $? -eq "0"; then
+ qecho "Authorizations not changed"
+ else
+ mv "$authconf" "$authconf".yaimorig
+ mv "$authconf".new "$authconf"
+ qecho "Authorizations changed, original authz configuration moved to '$authconf.yaimorig'"
+ fi
+ else
+ mv "$authconf".new "$authconf"
+ qecho "Authorizations generated ('$authconf')."
+ fi
+
+ # superusers file deprecated
+ if test -s "${GLITE_LOCATION_ETC}/LB-super-users"; then
+ echo "glite-lb-setup: WARNING: found old superusers file '${GLITE_LOCATION_ETC}/LB-super-users', check 'ADMIN_ACCESS' section in glite-lb-authz.conf"
+ echo "# deprecated file, replaced by ADMIN_ACCESS action in glite-lb-authz.conf" > "${GLITE_LOCATION_ETC}/LB-super-users.old"
+ cat "${GLITE_LOCATION_ETC}/LB-super-users" >> "${GLITE_LOCATION_ETC}/LB-super-users.old"
+ rm "${GLITE_LOCATION_ETC}/LB-super-users"
+ fi
+}
+
+
+setup_all() {
+ setup_db=1
+ setup_certs=1
+ setup_msg=1
+ setup_authz=1
+ setup_harvester=1
+ setup_bdii=1
+ setup_upgrade=1
+ setup_startup=1
+}
+
+
+while test -n "$1"; do
+ case "$1" in
+ -h|--help|help)
+ cat <<EOF
+Usage: glite-lb-setup [OPTIONS] [ACTIONS]
+
+OPTIONS are:
+ -q,--quiet ... print only errors
+ -c,--check ... check the availability of DB
+ -h,--help .... usage
+
+ACTIONS are:
+ db certs msg authz harvester bdii upgrade startup
+ krb .... setup Kerberos
+ krbgsi .... setup Kerberos and enable GSI autentization
+ all ....... all actions (default)
+ none ...... no actions (default for check)
+ yaim ...... actions for yaim
+ logger .... actions for glite-lb-logger
+EOF
+ exit 0
+ ;;
+ -q|--quiet)
+ quiet=1
+ ;;
+ -c|--check)
+ setup_check=1
+ ;;
+ all)
+ setup_all=1
+ setup_all
+ ;;
+ none) setup_none=1 ;;
+ yaim)
+ setup_all
+ setup_bdii=0
+ ;;
+ logger)
+ setup_certs=1
+ setup_msg=1
+ setup_upgrade=1
+ ;;
+ db) setup_db=1 ;;
+ certs) setup_certs=1 ;;
+ msg) setup_msg=1 ;;
+ authz) setup_authz=1 ;;
+ harvester) setup_harvester=1 ;;
+ bdii) setup_bdii=1 ;;
+ upgrade) setup_upgrade=1 ;;
+ startup) setup_startup=1 ;;
+ krb) setup_kerberos=1 ;;
+ krbgsi) setup_kerberos=1; setup_kerberos_gsi=1 ;;
+ *)
+ echo "glite-lb-setup: ERROR: unknown argument '$1'"
+ ;;
+ esac
+ shift
+done
+for action in db certs msg authz harvester bdii upgrade startup kerberos kerberos_gsi all none yaim logger; do
+ eval value=\"$`echo setup_$action`\"
+ if test "$value" = "1"; then
+ setup=1;
+ fi
+done
+if test "$setup" != "1" -a "$setup_check" != "1"; then
+ setup_all
+fi
+
+if test "$setup_check" = "1"; then
+ if check_mysql_connection && mysqlshow $MYSQL_ARGS | grep "\<lbserver20\>" > /dev/null 2>&1; then
+ qecho "Database lbserver20 already exists."
+ exit 0
+ fi
+ rm -f /tmp/glite-setup.$$
+
+ if test "$setup" != "1"; then
+ exit 1
+ fi
+fi
+
+if test -z "$GLITE_HOME_DIR"; then
+ echo "glite-lb-setup: ERROR: The home directory of ${GLITE_USER} doesn't exist. Check whether the user ${GLITE_USER} was properly created"
+ exit 2
+fi
+
+
+# ==== MySQL ====
+
+if test "$setup_db" = 1; then
+ # include MySQL options for L&B server
+ my_cnf=/etc/mysql/my.cnf
+ if test ! -f "$my_cnf"; then
+ my_cnf=/etc/my.cnf
+ fi
+ if test -f "$my_cnf"; then
+ grep '^!includedir\s\+/etc/mysql/conf.d/?' "$my_cnf" >/dev/null 2>&1
+ if ! test $? -eq 0; then
+ echo '!includedir /etc/mysql/conf.d/' >> "$my_cnf"
+ fi
+ else
+ echo "glite-lb-setup: WARNING: $my_cnf not found, check/add following line into MySQL configuration:"
+ echo "!includedir /etc/mysql/conf.d/"
+ fi
+
+ # restart for the new options
+ if test -x /sbin/service; then
+ out="`/sbin/service mysqld restart 2>&1`"
+ else
+ out="`/etc/init.d/mysql restart 2>&1`"
+ fi
+ if test $? -ne 0; then
+ echo "$out"
+ echo "glite-lb-setup: ERROR: starting MySQL failed"
+ exit 1
+ fi
+
+ if ! check_mysql_connection; then
+ cat /tmp/glite-setup.$$
+ rm -f /tmp/glite-setup.$$
+ echo "glite-lb-setup: ERROR: Can't access MySQL database. You may need to set MYSQL_USER and MYSQL_PASSWORD variables."
+ rm -f /tmp/glite-setup.$$
+ error="$error db"
+ exit 1
+ fi
+ rm -f /tmp/glite-setup.$$
+
+ if test ! -f $GLITE_LOCATION_ETC/glite-lb/glite-lb-dbsetup.sql; then
+ echo "glite-lb-setup: ERROR: glite-lb-dbsetup.sql not found (glite-lb-server not installed?)"
+ error="$error db"
+ exit 1
+ fi
+
+ # check if database exist and setup if necessary
+ if ! mysqlshow $MYSQL_ARGS | grep "\<lbserver20\>" > /dev/null 2>&1 || \
+ ! mysqlshow $MYSQL_ARGS lbserver20 jobs | grep 'Table: jobs\>'; then
+ mysql $MYSQL_ARGS -e "CREATE DATABASE lbserver20"
+ mysql $MYSQL_ARGS -e "GRANT ALL PRIVILEGES on lbserver20.* to lbserver IDENTIFIED BY '' WITH GRANT OPTION;"
+ mysql $MYSQL_ARGS -e "GRANT ALL PRIVILEGES on lbserver20.* to lbserver@'$HOSTNAME' IDENTIFIED BY '' WITH GRANT OPTION;"
+ mysql $MYSQL_ARGS -e "GRANT ALL PRIVILEGES on lbserver20.* to lbserver@localhost IDENTIFIED BY '' WITH GRANT OPTION;"
+
+ mysql -u lbserver lbserver20 < $GLITE_LOCATION_ETC/glite-lb/glite-lb-dbsetup.sql
+ mysql -u lbserver -e "ALTER TABLE short_fields MAX_ROWS=1000000000;" lbserver20
+ mysql -u lbserver -e "ALTER TABLE long_fields MAX_ROWS=55000000;" lbserver20
+ mysql -u lbserver -e "ALTER TABLE states MAX_ROWS=9500000;" lbserver20
+ mysql -u lbserver -e "ALTER TABLE events MAX_ROWS=175000000;" lbserver20
+
+ qecho "Database lbserver20 created."
+ else
+ qecho "Database lbserver20 exists."
+ fi
+
+ # adjust indexes
+ # 1) if L&B with local harvester or L&B for Real Time Monitoring ==> lastUpdateTime needed
+ # 2) if GLITE_LB_INDEX_OWNER specified ==> create owner index
+ need_reindex=0
+ $GLITE_LOCATION/bin/glite-lb-bkindex -d 2>/dev/null | tail -n +3 | head -n -2 | sed 's/\([^,]\)$/\1,/' > /tmp/glite-lb-bkindex.$$
+ if test x"$GLITE_LB_RTM_ENABLED" = x"true" -o x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then
+ if ! grep 'name = "lastUpdateTime"' /tmp/glite-lb-bkindex.$$ >/dev/null; then
+ echo '[ type = "system"; name = "lastUpdateTime" ],' >> /tmp/glite-lb-bkindex.$$
+ need_reindex=1
+ fi
+ fi
+ if test x"$GLITE_LB_INDEX_OWNER" = x"true"; then
+ if ! grep 'name = "owner"' /tmp/glite-lb-bkindex.$$ >/dev/null; then
+ echo '[ type = "system"; name = "owner" ],' >> /tmp/glite-lb-bkindex.$$
+ need_reindex=1
+ fi
+ fi
+ if test $need_reindex -eq 1; then
+ $GLITE_LOCATION/bin/glite-lb-bkindex -rv <<EOF
+[
+ JobIndices = {
+`cat /tmp/glite-lb-bkindex.$$`
+ }
+]
+EOF
+ fi
+ rm /tmp/glite-lb-bkindex.$$
+
+ # migrate L&B 3.x to L&B 4.0
+ if test -f $GLITE_LOCATION_ETC/glite-lb/glite-lb-migrate_db2version40; then
+ if ! mysqlshow $MYSQL_ARGS lbserver20 job_connections | grep 'Table: job_connection\>' > /dev/null 2>&1; then
+ sh $GLITE_LOCATION_ETC/glite-lb/glite-lb-migrate_db2version40 -s
+ if test $? -eq 0; then
+ qecho "Database migrated to L&B 4.x"
+ else
+ error="$error db"
+ fi
+ fi
+ fi
+fi
+
+
+# ==== certificates ====
+
+if test "$setup_certs" = "1"; then
+ if test ! -d $GLITE_HOME_DIR/.certs; then
+ mkdir -p $GLITE_HOME_DIR/.certs
+ chown $GLITE_USER:$GLITE_USER $GLITE_HOME_DIR/.certs
+ fi
+ cp -f /etc/grid-security/hostcert.pem /etc/grid-security/hostkey.pem $GLITE_HOME_DIR/.certs/
+ if test $? -eq 0; then
+ chown $GLITE_USER:$GLITE_USER $GLITE_HOME_DIR/.certs/hostcert.pem $GLITE_HOME_DIR/.certs/hostkey.pem
+ chmod 0644 $GLITE_HOME_DIR/.certs/hostcert.pem
+ chmod 0400 $GLITE_HOME_DIR/.certs/hostkey.pem
+ qecho "Certificates copied to $GLITE_HOME_DIR/.certs/"
+ else
+ echo "glite-lb-setup: WARNING: Please copy host certificate and key into /etc/grid-security and"
+ echo " $GLITE_HOME_DIR/.certs/, change the owner of the ones in"
+ echo " $GLITE_HOME_DIR/.certs/ to $GLITE_USER"
+ error="$error certs"
+ fi
+fi
+
+
+# ==== messaging ====
+
+if test "$setup_msg" = "1"; then
+ if test -x $GLITE_LOCATION/sbin/glite-lb-msg-config; then
+ out=`$GLITE_LOCATION/sbin/glite-lb-msg-config $GLITE_LOCATION_ETC/glite-lb/msg.conf 2>&1`
+ if test $? -eq 0; then
+ if test -z "$out"; then
+ out="(no changes)"
+ fi
+ qecho "Messaging brokers: $out"
+ else
+ echo "glite-lb-setup: ERROR: $out"
+ error="$error msg"
+ fi
+ else
+ echo "glite-lb-setup: WARNING: MSG plugin for glite-lb-logger not installed (package glite-lb-logger-msg)"
+ fi
+fi
+
+
+# ==== authorizations ====
+if test "$setup_authz" = "1"; then
+ if test x"$GLITE_LB_RTM_ENABLED" = x"true"; then
+ config_glite_lb_authz "$GLITE_LB_SUPER_USERS" "$GLITE_LB_RTM_DN"
+ else
+ config_glite_lb_authz "$GLITE_LB_SUPER_USERS" ""
+ fi
+fi
+
+
+# ==== harvester ====
+
+if test "$setup_harvester" = "1"; then
+ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then
+ if test ! -f $GLITE_LOCATION_ETC/glite-lb/glite-lb-harvester.conf; then
+ echo $HOSTNAME > $GLITE_LOCATION_ETC/glite-lb/glite-lb-harvester.conf
+ qecho "Harvester configured"
+ fi
+ fi
+fi
+
+
+# ==== BDII ====
+
+if test "$setup_bdii" = "1"; then
+ export INFO_SERVICE_CONFIG='/etc/glite/info/service'
+ if test -x /etc/init.d/bdii; then
+ if test -f ${INFO_SERVICE_CONFIG}/glite-info-service-lbserver.conf.template -a -f ${INFO_SERVICE_CONFIG}/glite-info-glue2-lbserver.conf.template; then
+ bdii=1
+ else
+ echo "glite-lb-setup: WARNING: glite-info-provider-service not installed, BDII won't be configured"
+ fi
+ else
+ echo "glite-lb-setup: WARNING: BDII not installed, it won't be configured"
+ fi
+ if test "$bdii" = "1"; then
+ cp ${INFO_SERVICE_CONFIG}/glite-info-service-lbserver.conf.template ${INFO_SERVICE_CONFIG}/glite-info-service-lbserver.conf
+ cp ${INFO_SERVICE_CONFIG}/glite-info-glue2-lbserver.conf.template ${INFO_SERVICE_CONFIG}/glite-info-glue2-lbserver.conf
+ cat <<EOF >/var/lib/bdii/gip/provider/glite-info-provider-service-lbserver-wrapper
+/usr/bin/glite-info-service ${INFO_SERVICE_CONFIG}/glite-info-service-lbserver.conf $SITE_NAME
+/usr/bin/glite-info-glue2-simple ${INFO_SERVICE_CONFIG}/glite-info-glue2-lbserver.conf $SITE_NAME
+EOF
+ chmod +x /var/lib/bdii/gip/provider/glite-info-provider-service-lbserver-wrapper
+ BDII_PASSWD=`dd if=/dev/random bs=1 count=10 2>/dev/null | base64`
+ cat << EOF > @defaultdir@/bdii
+RUN=yes
+SLAPD_CONF=
+SLAPD=
+BDII_RAM_DISK=
+EOF
+ sed -i "s#.*rootpw.*#rootpw ${BDII_PASSWD}#" /etc/bdii/bdii-slapd.conf
+
+ if test -x /sbin/service; then
+ out="`/sbin/service bdii restart 2>&1`"
+ else
+ out="`/etc/init.d/bdii restart 2>&1`"
+ fi
+ if test $? -eq 0; then
+ qecho "BDII configured"
+ else
+ echo "$out"
+ error="$error bdii"
+ fi
+ fi
+fi
+
+# ==== upgrade ====
+
+if test "$setup_upgrade" = "1"; then
+ # upgrade from L&B <= 3.1.1
+ # (legacy start-up stuff)
+ if test -f @glite_etc@/gLiteservice; then
+ grep -v 'glite-lb-bkserverd' @glite_etc@/gLiteservice > /tmp/gLiteservice
+ grep -v 'glite-lb-locallogger' @glite_etc@/gLiteservice > /tmp/gLiteservice
+ mv /tmp/gLiteservice @glite_etc@/gLiteservice
+ fi
+ # (old crons)
+ rm -fv /etc/cron.d/glite-lb-purge.cron /etc/logrotate.d/lb-purger /etc/logrotate.d/lb-lcas
+fi
+
+
+# ==== kerberos (experimental) ====
+
+if test "$setup_kerberos" = "1"; then
+ if test ! -f /etc/krb5.keytab; then
+ echo "glite-lb-setup: ERROR: keytab not found"
+ kerberos=0
+ fi
+
+ if ! test -x `which klist`; then
+ echo "glite-lb-setup: ERROR: kerberos clients not found"
+ kerberos=0
+ fi
+
+ if test "$kerberos" = "0"; then
+ error="$error krb"
+ fi
+
+ if ldd $GLITE_LOCATION/bin/glite-lb-bkserverd | grep libglobus_gssapi_gsi >/dev/null 2>&1; then
+ echo "glite-lb-setup: ERROR: Kerberos support requires L&B built with Kerberos libraries"
+ error="$error krb"
+ kerberos=0
+ fi
+
+ if test "$kerberos" != "0"; then
+ klist --version >/dev/null 2>&1
+ if test $? -eq 0; then
+ #Heimdal
+ PRINC=`ktutil -k /etc/krb5.keytab list | grep "host/" | head -1 | awk '{print $3}'`
+ else
+ #MIT
+ PRINC=`klist -k | grep "host/" | head -1 | awk '{print $2}'`
+ fi
+
+ cp /etc/krb5.keytab /var/glite/krb5kt_lb || error="$error krb"
+ chown glite:glite /var/glite/krb5kt_lb
+
+ cat > /etc/cron.d/glite-lb-ticket <<EOF
+0 */2 * * * root (ticket=/var/glite/krb5cc_lb; KRB5CCNAME="FILE:\${ticket}0" kinit -k $PRINC; chown glite:glite \${ticket}0; mv \${ticket}0 \$ticket)
+EOF
+ KRB5CCNAME=/var/glite/krb5cc_lb kinit -k $PRINC
+ chown glite:glite /var/glite/krb5cc_lb
+
+ qecho "Kerberos configured"
+ fi
+fi
+
+if test "$setup_kerberos_gsi" = "1"; then
+ if ! ldd $GLITE_LOCATION/bin/glite-lb-bkserver | grep libheim >/dev/null 2>&1; then
+ echo "glite-lb-setup: ERROR: GSI mode with kerberos requires L&B built in Heimdal Kerberos implementation"
+ error="$error krbgsi"
+ kerberos=0
+ fi
+ if test "$kerberos" != "0"; then
+ mkdir /etc/gss >/dev/null 2>&1
+ echo "gsi 1.3.6.1.4.1.3536.1.1 /usr/lib/libglobus_gssapi_gsi.so.4" > /etc/gss/mech
+
+ qecho "GSI mode with Kerberos configured"
+ echo "glite-lb-setup: NOTE: tuned Globus and Heimdal Kerberos libraries required for support GSI with Kerberos"
+ fi
+fi
+
+
+# ==== startup ====
+
+if test "$setup_startup" = "1"; then
+ if test ! -x $GLITE_LOCATION/bin/glite-lb-bkserverd; then
+ echo "glite-lb-setup: ERROR: glite-lb-server not installed"
+ startup_error=1
+ fi
+ if test ! -x $GLITE_LOCATION/bin/glite-lb-logd; then
+ echo "glite-lb-setup: ERROR: glite-lb-logger not installed"
+ startup_error=1
+ fi
+ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then
+ if test ! -x $GLITE_LOCATION/bin/glite-lb-harvester; then
+ echo "glite-lb-setup: ERROR: glite-lb-harvester not installed"
+ startup_error=1
+ fi
+ fi
+ if test "$startup_error" = "1"; then
+ error="$error startup"
+ fi
+fi
+if test "$setup_startup" = "1" -a "$startup_error" != "1"; then
+ if egrep -i "Debian|Ubuntu" /etc/issue >/dev/null; then
+ update-rc.d glite-lb-bkserverd defaults
+ update-rc.d glite-lb-locallogger defaults
+ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then
+ update-rc.d glite-lb-harvester defaults
+ fi
+ else
+ /sbin/chkconfig mysqld on
+ test -z "$bdii" && /sbin/chkconfig bdii on
+ /sbin/chkconfig glite-lb-bkserverd on
+ /sbin/chkconfig glite-lb-locallogger on
+ if test x"$GLITE_LB_HARVETER_ENABLED" = x"true"; then
+ /sbin/chkconfig glite-lb-harvester on
+ fi
+ fi
+
+ startup_error=0
+ $GLITE_LOCATION_ETC/init.d/glite-lb-bkserverd restart || startup_error=1
+ $GLITE_LOCATION_ETC/init.d/glite-lb-locallogger restart || startup_error=1
+ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then
+ $GLITE_LOCATION_ETC/init.d/glite-lb-harvester restart || startup_error=1
+ else
+ $GLITE_LOCATION_ETC/init.d/glite-lb-harvester stop >/dev/null
+ fi
+
+ if test "$startup_error" = "0"; then
+ qecho "Services started successfully"
+ else
+ echo "glite-lb-setup: ERROR: Some services failed to start"
+ error="$error startup"
+ fi
+fi
+
+
+# ==== the end ====
+
+if test -z "$error"; then
+ exit 0
+else
+ echo "glite-lb-setup: ERROR: $error"
+ exit 1
+fi
# limitations under the License.
#
-GLITE_LB_LOCATION=${GLITE_LB_LOCATION:-'@glite_prefix@'}
+GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'}
GLITE_LB_LOCATION_VAR=${GLITE_LB_LOCATION_VAR:-'@glite_var@'}
-GLITE_LB_LOCATION_ETC=${GLITE_LB_LOCATION_ETC:-'@glite_etc@'}
-GLITE_JP_LOCATION=${GLITE_JP_LOCATION:-$GLITE_LB_LOCATION}
+GLITE_LOCATION_ETC=${GLITE_LOCATION_ETC:-'@glite_etc@'}
+GLITE_JP_LOCATION=${GLITE_JP_LOCATION:-$GLITE_LOCATION}
+GLITE_USER=${GLITE_USER:-'glite'}
+GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6`
+GLITE_HOST_CERT=${GLITE_HOST_CERT:-"$GLITE_HOME/.certs/hostcert.pem"}
+GLITE_HOST_KEY=${GLITE_HOST_KEY:-"$GLITE_HOME/.certs/hostkey.pem"}
KRB5_KTNAME="FILE:/var/glite/krb5kt_lb"
KRB5CCNAME="FILE:/var/glite/krb5cc_lb"
-LOG4C_RCPATH="$GLITE_LB_LOCATION_ETC/glite-lb"
+LOG4C_RCPATH="$GLITE_LOCATION_ETC/glite-lb"
[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh
[ -f /etc/glite.conf ] && . /etc/glite.conf
-[ -f $GLITE_LB_LOCATION_ETC/glite-wms.conf ] && . $GLITE_LB_LOCATION_ETC/glite-wms.conf
-
-[ -f $GLITE_LB_LOCATION_ETC/lb.conf ] && . $GLITE_LB_LOCATION_ETC/lb.conf
-[ -f $GLITE_LB_LOCATION_VAR/etc/lb.conf ] && . $GLITE_LB_LOCATION_VAR/etc/lb.conf
-
+[ -f $GLITE_LOCATION_ETC/glite-wms.conf ] && . $GLITE_LOCATION_ETC/glite-wms.conf
+[ -f @defaultdir@/glite-lb ] && . @defaultdir@/glite-lb
[ -f $HOME/.glite.conf ] && . $HOME/.glite.conf
[ -n "$GLITE_LB_SERVER_PIDFILE" ] && BK_PIDFILE=$GLITE_LB_SERVER_PIDFILE ||
PROXY_IL_PIDFILE=$GLITE_LB_LOCATION_VAR/glite-lb-proxy-interlogd.pid
NOTIF_IL_PIDFILE=$GLITE_LB_LOCATION_VAR/glite-lb-notif-interlogd.pid
-msgconf="$GLITE_LB_LOCATION_ETC/glite-lb/msg.conf"
+msgconf="$GLITE_LOCATION_ETC/glite-lb/msg.conf"
if [ -f "$msgconf" ]; then
GLITE_LB_NOTIF_IL_OTHER_OPTIONS="$GLITE_LB_NOTIF_IL_OTHER_OPTIONS -F $msgconf"
GLITE_LB_SERVER_OTHER_OPTIONS="$GLITE_LB_SERVER_OTHER_OPTIONS -F $msgconf"
start()
{
- if test -z "$GLITE_USER" ;then
- echo 'Error: GLITE_USER is not set'
- echo FAILED
- return 1
- fi
-
if [ -n "$LOG4C_RCPATH" ]; then env="$env LOG4C_RCPATH='$LOG4C_RCPATH'"; fi
if [ -n "$KRB5_KTNAME" ]; then env="$env KRB5_KTNAME='$KRB5_KTNAME'"; fi
if [ -n "$KRB5CCNAME" ]; then env="$env KRB5CCNAME='$KRB5CCNAME'"; fi
[ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
- policy="$GLITE_LB_LOCATION_ETC/glite-lb/glite-lb-authz.conf"
- lcas_log="LCAS_LOG_FILE='/var/log/glite/glite-lb-server-lcas.log' LCAS_ETC_DIR='$GLITE_LB_LOCATION_ETC/glite-lb'"
+ policy="$GLITE_LOCATION_ETC/glite-lb/glite-lb-authz.conf"
+ lcas_log="LCAS_LOG_FILE='/var/log/glite/glite-lb-server-lcas.log' LCAS_ETC_DIR='$GLITE_LOCATION_ETC/glite-lb'"
if test -f "$policy"; then
# lcas not enabled by default yet
policy="--policy '$policy'"
;;
esac
- start_daemon glite-lb-bkserver "$BK_PIDFILE" "$lcas_log $GLITE_LB_LOCATION/bin/glite-lb-bkserverd \
+ start_daemon glite-lb-bkserver "$BK_PIDFILE" "$lcas_log $GLITE_LOCATION/bin/glite-lb-bkserverd \
--notif-il-sock=$GLITE_LB_NOTIF_SOCK \
--notif-il-fprefix=$GLITE_LB_NOTIF_FPREFIX \
$super -i $BK_PIDFILE $port $wport $dumpdir $purgedir $lbreg_maildir $proxy $policy\
$GLITE_LB_SERVER_OTHER_OPTIONS" "/tmp/lb_proxy_serve.sock /tmp/lb_proxy_store.sock"
- if test -x $GLITE_LB_LOCATION/bin/glite-lb-notif-interlogd; then
- start_daemon glite-lb-notif-interlogd "$NOTIF_IL_PIDFILE" "$GLITE_LB_LOCATION/bin/glite-lb-notif-interlogd \
+ if test -x $GLITE_LOCATION/bin/glite-lb-notif-interlogd; then
+ start_daemon glite-lb-notif-interlogd "$NOTIF_IL_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-notif-interlogd \
-f $GLITE_LB_NOTIF_FPREFIX -s $GLITE_LB_NOTIF_SOCK \
-i $NOTIF_IL_PIDFILE -M 10485760 \
$GLITE_LB_NOTIF_IL_OTHER_OPTIONS" "$GLITE_LB_NOTIF_SOCK"
fi
if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both" ; then
- if test -x $GLITE_LB_LOCATION/bin/glite-lb-interlogd; then
- start_daemon "glite-lb-interlog for proxy" "$PROXY_IL_PIDFILE" "$GLITE_LB_LOCATION/bin/glite-lb-interlogd \
+ if test -x $GLITE_LOCATION/bin/glite-lb-interlogd; then
+ start_daemon "glite-lb-interlog for proxy" "$PROXY_IL_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-interlogd \
-f $GLITE_LB_PROXY_FPREFIX -s $GLITE_LB_PROXY_SOCK \
-i $PROXY_IL_PIDFILE \
$GLITE_LB_PROXY_IL_OTHER_OPTIONS" "$GLITE_LB_PROXY_SOCK"
%config(noreplace) /etc/logrotate.d/glite-lb-server
%config(noreplace) /etc/mysql/conf.d/glite-lb-server.cnf
%config(noreplace) /etc/glite-lb/*
-/etc/glite-lb-dbsetup.sql
+%config(noreplace) /etc/glite-lb-dbsetup.sql
/etc/cron.d/*
/etc/glite-lb-index.conf.template
/etc/init.d/glite-lb-bkserverd
-/usr/include/glite/lb/index.h
-/usr/include/glite/lb/lb_authz.h
-/usr/include/glite/lb/store.h
-/usr/include/glite/lb/srv_perf.h
-/usr/bin/glite-lb-bkindex
-/usr/bin/glite-lb-mon-db
-/usr/bin/glite-lb-bkserverd
-/usr/sbin/glite-lb-notif-keeper
+/usr/include/glite/lb/*
+/usr/bin/*
+/usr/sbin/*
/usr/share/doc/%{name}-%{version}/ChangeLog
/usr/share/doc/%{name}-%{version}/LICENSE
+/usr/share/doc/%{name}-%{version}/glite-lb
/usr/share/doc/%{name}-%{version}/package.description
/usr/share/doc/%{name}-%{version}/package.summary
/usr/share/man/man1/glite-lb-mon-db.1.gz
yaimgridenv_set GLITE_LB_EXPORT_PURGE_ARGS "${GLITE_LB_EXPORT_PURGE_ARGS:---cleared 2d --aborted 15d --cancelled 15d --other 60d}"
yaimgridenv_set GLITE_LB_EXPORT_JPPS ${GLITE_LB_EXPORT_JPPS:-}
- yaimgridenv_set GLITE_LB_LOCATION "${GLITE_LB_LOCATION:-@glite_prefix@}"
- yaimgridenv_set GLITE_LB_LOCATION_ETC "${GLITE_LB_LOCATION_ETC:-@glite_etc@}"
+ yaimgridenv_set GLITE_LOCATION "${GLITE_LOCATION:-@glite_prefix@}"
+ yaimgridenv_set GLITE_LOCATION_ETC "${GLITE_LOCATION_ETC:-@glite_etc@}"
yaimgridenv_set GLITE_LB_LOCATION_VAR "${GLITE_LB_LOCATION_VAR:-@glite_var@}"
yaimgridenv_set GLITE_JP_LOCATION "${GLITE_JP_LOCATION:-}"
config_glite_lb_libs_append ${INSTALL_ROOT:-'/opt'}/apr-dev
config_glite_lb_libs_append ${INSTALL_ROOT:-'/opt'}/aprutil-dev
config_glite_lb_libs_append ${INSTALL_ROOT:-'/opt'}/activemq-cpp-library
-
- GLITE_LB_RTM_ENABLED="${GLITE_LB_RTM_ENABLED:-false}"
- GLITE_LB_MSG_BROKER="${GLITE_LB_MSG_BROKER:-true}"
- GLITE_LB_MSG_NETWORK="${GLITE_LB_MSG_NETWORK:-PROD}"
- LCG_GFAL_INFOSYS="${LCG_GFAL_INFOSYS:-lcg-bdii.cern.ch:2170}"
-
- #GLITE_LB_SUPER_USERS="${GLITE_LB_SUPER_USERS:-}"
- #GLITE_LB_WMS_DN="${GLITE_LB_WMS_DN:-}"
- GLITE_LB_RTM_DN="${GLITE_LB_RTM_DN:-/C=UK/O=eScience/OU=Imperial/L=Physics/CN=heppc24.hep.ph.ic.ac.uk/Email=janusz.martyniak@imperial.ac.uk}"
- #GLITE_LB_AUTHZ_ADMIN_ACCESS="${GLITE_LB_AUTHZ_ADMIN_ACCESS:-}"
- #GLITE_LB_AUTHZ_READ_ALL="${GLITE_LB_AUTHZ_READ_ALL:-}"
- #GLITE_LB_AUTHZ_READ_PURGE="${GLITE_LB_AUTHZ_READ_PURGE:-}"
- #GLITE_LB_AUTHZ_STATUS_FOR_MONITORING="${GLITE_LB_AUTHZ_STATUS_FOR_MONITORING:-}"
- #GLITE_LB_AUTHZ_GET_STATISTICS="${GLITE_LB_AUTHZ_GET_STATISTICS:-}"
- #GLITE_LB_AUTHZ_GRANT_OWNERSHIP="${GLITE_LB_AUTHZ_GRANT_OWNERSHIP:-}"
- GLITE_LB_AUTHZ_REGISTER_JOBS="${GLITE_LB_AUTHZ_REGISTER_JOBS:-.*}"
- GLITE_LB_AUTHZ_LOG_WMS_EVENTS="${GLITE_LB_AUTHZ_LOG_WMS_EVENTS:-.*}"
- GLITE_LB_AUTHZ_LOG_CE_EVENTS="${GLITE_LB_AUTHZ_LOG_CE_EVENTS:-.*}"
- GLITE_LB_AUTHZ_LOG_GENERAL_EVENTS="${GLITE_LB_AUTHZ_LOG_GENERAL_EVENTS:-.*}"
-}
-
-function config_glite_lb_authz() {
- superusers="$1"
- rtm="$2"
- wms="$GLITE_LB_WMS_DN"
-
- authconf="$GLITE_LB_LOCATION_ETC/glite-lb/glite-lb-authz.conf"
-
- cat <<EOF > "$authconf".new
-resource "LB" {
-EOF
- for section in ADMIN_ACCESS STATUS_FOR_MONITORING GET_STATISTICS REGISTER_JOBS READ_ALL PURGE GRANT_OWNERSHIP LOG_WMS_EVENTS LOG_CE_EVENTS LOG_GENERAL_EVENTS; do
- eval value=\"$`echo GLITE_LB_AUTHZ_$section`\"
- case "$section" in
- ADMIN_ACCESS) value="$value,$superusers" ;;
- GET_STATISTICS) value="$value,$wms" ;;
- READ_ALL) value="$value,$wms,$rtm" ;;
- PURGE) value="$value,$wms" ;;
- LOG_WMS_EVENTS) value="$value,$wms" ;;
- esac
- value="`echo \"$value\" | tr ',' '\n' | grep -v ^$ | sed 's/\(.*\)/\trule permit {\n\t\tsubject = \"\1\"\n\t}/'`"
- cat <<EOF >> "$authconf".new
-
-action "$section" {
-$value
-}
-EOF
- done
- cat <<EOF >> "$authconf".new
-
-}
-EOF
-
- # something changed
- if test -f "$authconf"; then
- diff -w "$authconf" "$authconf".new >/dev/null
- if test "$?" != "0"; then
- yaimlog WARNING "Original authz configuration moved to '$authconf.yaimorig'"
- mv "$authconf" "$authconf".yaimorig
- fi
- fi
-
- # superusers file deprecated
- if test -s "${GLITE_LB_LOCATION_ETC}/LB-super-users"; then
- yaimlog WARNING "Found old superusers file '${GLITE_LB_LOCATION_ETC}/LB-super-users', check 'ADMIN_ACCESS' section in glite-lb-authz.conf"
- echo "# deprecated file, replaced by ADMIN_ACCESS action in glite-lb-authz.conf" > "${GLITE_LB_LOCATION_ETC}/LB-super-users.old"
- cat "${GLITE_LB_LOCATION_ETC}/LB-super-users" >> "${GLITE_LB_LOCATION_ETC}/LB-super-users.old"
- rm "${GLITE_LB_LOCATION_ETC}/LB-super-users"
- fi
-
- mv "$authconf".new "$authconf"
}
function config_glite_lb() {
chmod og+rx /var/lib/mysql/
chown mysql:mysql /var/run/mysqld/
- # include MySQL options for L&B server
- my_cnf=/etc/mysql/my.cnf
- if [ ! -f "$my_cnf" ]; then
- my_cnf=/etc/my.cnf
- fi
- grep '^!includedir\s\+/etc/mysql/conf.d/?' "$my_cnf" >/dev/null 2>&1
- if [ $? != 0 ]; then
- echo '!includedir /etc/mysql/conf.d/' >> "$my_cnf"
- fi
-
- if [ -x /sbin/service ]; then
- /sbin/chkconfig mysqld on
- /sbin/service mysqld restart
- else
- /etc/init.d/mysql restart
- fi
-
- ls /tmp/mysql.sock > /dev/null 2>&1
- if [ ! $? = 0 ]; then
- ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
- fi
-
- # set mysql password
- set_mysql_passwd || return 1 # the function uses $MYSQL_PASSWORD
-
- # Check if database exist
- mysqlshow --password="$MYSQL_PASSWORD" | grep "\<lbserver20\>" > /dev/null 2>&1
-
- if [ ! $? = 0 ]; then
- mysql -u root --password="$MYSQL_PASSWORD" -e "CREATE DATABASE lbserver20"
- mysql --password="$MYSQL_PASSWORD" lbserver20 < ${GLITE_LB_LOCATION_ETC}/glite-lb/glite-lb-dbsetup.sql
- mysql -u root --password="$MYSQL_PASSWORD" -e "GRANT ALL PRIVILEGES on lbserver20.* to lbserver IDENTIFIED BY '' WITH GRANT OPTION;"
- mysql -u root --password="$MYSQL_PASSWORD" -e "GRANT ALL PRIVILEGES on lbserver20.* to lbserver@'$HOSTNAME' IDENTIFIED BY '' WITH GRANT OPTION;"
- mysql -u root --password="$MYSQL_PASSWORD" -e "GRANT ALL PRIVILEGES on lbserver20.* to lbserver@localhost IDENTIFIED BY '' WITH GRANT OPTION;"
- mysql -u root --password="$MYSQL_PASSWORD" -e "ALTER TABLE short_fields MAX_ROWS=1000000000;" lbserver20
- mysql -u root --password="$MYSQL_PASSWORD" -e "ALTER TABLE long_fields MAX_ROWS=55000000;" lbserver20
- mysql -u root --password="$MYSQL_PASSWORD" -e "ALTER TABLE states MAX_ROWS=9500000;" lbserver20
- mysql -u root --password="$MYSQL_PASSWORD" -e "ALTER TABLE events MAX_ROWS=175000000;" lbserver20
- else
- yaimlog WARNING "Database lbserver20 already exists"
- fi
-
- # adjust indexes
- # 1) if L&B with local harvester or L&B for Real Time Monitoring ==> lastUpdateTime needed
- # 2) if GLITE_LB_INDEX_OWNER specified ==> create/destroy owner index
- need_reindex=0
- $GLITE_LB_LOCATION/bin/glite-lb-bkindex -d 2>/dev/null | tail -n +3 | head -n -2 | sed 's/\([^,]\)$/\1,/' > /var/tmp/glite-lb-bkindexes.txt
- if [ x"$GLITE_LB_RTM_ENABLED" = x"true" -o x"GLITE_LB_HARVESTER_ENABLED" = x"true" ]; then
- # index for querying older jobs by real time monitor
- grep '\[ type = "system"; name = "lastUpdateTime" \]' /var/tmp/glite-lb-bkindexes.txt >/dev/null
- if [ $? != 0 ]; then
- need_reindex=1
- yaimlog INFO "Index 'lastUpdateTime' will be added"
- echo '[ type = "system"; name = "lastUpdateTime" ],' >> /var/tmp/glite-lb-bkindexes.txt
- fi
- fi
- if [ x"$GLITE_LB_INDEX_OWNER" = x"true" ]; then
- grep 'name = "owner"' /var/tmp/glite-lb-bkindexes.txt >/dev/null
- if [ $? != 0 ]; then
- need_reindex=1
- yaimlog INFO "Index 'owner' will be added"
- echo '[ type = "system"; name = "owner" ],' >> /var/tmp/glite-lb-bkindexes.txt
- fi
- elif [ x"$GLITE_LB_INDEX_OWNER" = x"false" ]; then
- grep 'name = "owner"' /var/tmp/glite-lb-bkindexes.txt >/dev/null
- if [ $? = 0 ]; then
- need_reindex=1
- yaimlog INFO "Index 'owner' will be deleted"
- mv /var/tmp/glite-lb-bkindexes.txt /var/tmp/glite-lb-bkindexes.txt.2
- grep -v 'name = "owner"' /var/tmp/glite-lb-bkindexes.txt.2 > /var/tmp/glite-lb-bkindexes.txt
- rm -f /var/tmp/glite-lb-bkindexes.txt.2
- fi
- fi
- if [ $need_reindex = 1 ]; then
- cat << EOF | $GLITE_LB_LOCATION/bin/glite-lb-bkindex -rv
-[
- JobIndices = {
-`cat /var/tmp/glite-lb-bkindexes.txt`
- }
-]
-EOF
- fi
- rm -f /var/tmp/glite-lb-bkindexes.txt
-
- mkdir -p $GLITE_HOME_DIR/.certs
- chown $GLITE_USER:$GLITE_USER $GLITE_HOME_DIR/.certs
- chmod 0755 $GLITE_HOME_DIR/.certs
- cp -f /etc/grid-security/hostcert.pem /etc/grid-security/hostkey.pem $GLITE_HOME_DIR/.certs/
- if [ ! $? = 0 ] ; then
- yaimlog WARNING "Please copy host certificate and key into /etc/grid-security and"
- yaimlog WARNING " $GLITE_HOME_DIR/.certs/, change the owner of the ones in"
- yaimlog WARNING " $GLITE_HOME_DIR/.certs/ to $GLITE_USER"
- fi
- chown $GLITE_USER:$GLITE_USER $GLITE_HOME_DIR/.certs/hostcert.pem $GLITE_HOME_DIR/.certs/hostkey.pem
- chmod 0644 $GLITE_HOME_DIR/.certs/hostcert.pem
- chmod 0400 $GLITE_HOME_DIR/.certs/hostkey.pem
-
# LCAS plugin
# config file
lcas_libarch=lib
fi
fi
lcas_plugin="$GLITE_LB_LOCATION/$lcas_libarch/modules/lcas_lb.mod"
- echo "pluginname=\"$lcas_plugin\"" > ${GLITE_LB_LOCATION_ETC}/glite-lb/lcas.db
-
- out="`$GLITE_LB_LOCATION/sbin/glite-lb-msg-config $GLITE_LB_LOCATION_ETC/glite-lb/msg.conf 2>&1`"
- ret=$?
- if [ $ret -eq 0 ]; then level=INFO; else level=WARNING; fi
- if [ -n "$out" -o $ret -ne 0 ]; then
- yaimlog $level "$out"
- fi
-
- # upgrade from L&B <= 3.1.1
- # (legacy start-up stuff)
- if [ -f @glite_etc@/gLiteservice ] ; then
- grep -v 'glite-lb-bkserverd' > /tmp/gLiteservice
- mv /tmp/gLiteservice @glite_etc@/gLiteservice
- fi
-
- if [ x"$GLITE_LB_RTM_ENABLED" = x"true" ]; then
- config_glite_lb_authz "$GLITE_LB_SUPER_USERS" "$GLITE_LB_RTM_DN"
- else
- config_glite_lb_authz "$GLITE_LB_SUPER_USERS" ""
- fi
+ echo "pluginname=\"$lcas_plugin\"" > ${GLITE_LOCATION_ETC}/glite-lb/lcas.db
- if [ ! -f ${GLITE_LB_LOCATION_ETC}/glite-lb/glite-lb-harvester.conf ]; then
- echo $HOSTNAME > ${GLITE_LB_LOCATION_ETC}/glite-lb/glite-lb-harvester.conf
- fi
-
- # upgrade from L&B <= 3.1.1
- rm -fv /etc/cron.d/glite-lb-purge.cron /etc/logrotate.d/lb-purger /etc/logrotate.d/lb-lcas
-
- # start-up on boot
- . @glite_etc@/profile.d/grid-env.sh
- if egrep -i "Debian|Ubuntu" /etc/issue >/dev/null; then
- update-rc.d glite-lb-bkserverd defaults
- update-rc.d glite-lb-locallogger defaults
- if [ x"$GLITE_LB_RTM_ENABLED" = x"true" ]; then
- update-rc.d glite-lb-harvester defaults
- fi
- else
- /sbin/chkconfig glite-lb-bkserverd on
- /sbin/chkconfig glite-lb-locallogger on
- if [ x"$GLITE_LB_RTM_ENABLED" = x"true" ]; then
- /sbin/chkconfig glite-lb-harvester on
- fi
- fi
-
- ${GLITE_LB_LOCATION_ETC}/init.d/glite-lb-bkserverd restart
- if [ ! $? = 0 ] ; then
- yaimlog ABORT "Service glite-lb-bkserverd failed to start!"
+ # main L&B setup
+ . ${GLITE_LOCATION}/sbin/glite-lb-setup yaim
+ if [ $? != 0 ]; then
+ yaimlog ABORT "glite-lb-setup failed!"
return 1
fi
- if [ x"$GLITE_LB_RTM_ENABLED" = x"true" ]; then
- ${GLITE_LB_LOCATION_ETC}/init.d/glite-lb-harvester restart
- else
- ${GLITE_LB_LOCATION_ETC}/init.d/glite-lb-harvester stop
- fi
-
return 0
-
}
my $sysroot = '';
my $sysconfdir;
my $localstatedir;
+my $os_type;
my $staged;
my $module;
my $thrflavour = 'gcc64dbgpthr';
'sysroot:s' => \$sysroot,
'sysconfdir=s' => \$sysconfdir,
'localstatedir=s' => \$localstatedir,
+ 'os-type=s' => \$os_type,
'lb-tag=s' => \$lb_tag,
'lbjp-common-tag=s' => \$lbjp_tag,
'jp-tag=s' => \$jp_tag,
if (not $localstatedir) { $localstatedir = $prefix eq '/usr' ? '/var' : "$prefix/var"; }
$sysconfdir=~s/\/$//;
$localstatedir=~s/\/$//;
+if (not $os_type) { $os_type = os_type(); }
$externs{'mysql-server'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-server'}{prefix} eq '';
$externs{'mysql-devel'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-devel'}{prefix} eq '';
sysroot = $sysroot
sysconfdir = $sysconfdir
localstatedir = $localstatedir
+os_type = $os_type
thrflavour = $thrflavour
nothrflavour = $nothrflavour
libdir = $libdir
}
}
+sub os_type {
+ my $ver;
+
+ open FH, '<', '/etc/issue' or return "redhat";
+ $_=<FH>;
+ close FH;
+
+ if (/Debian|Ubuntu/i) { return "debian"; }
+ elsif (/Scientific|Redhat|Centos/i) { return "redhat"; }
+ elsif (/Fedora/i) {
+ $ver = `rpm -q --queryformat '%{version}' fedora-release 2>/dev/null`;
+ if ($ver and $ver >= 15) { return "fedora"; }
+ else { return "redhat"; }
+ } else {
+ return "redhat";
+ }
+}
+
sub usage {
my @ext = keys %externs;
my @myjars = keys %jar;
--root=DIR installation root (custom relocation root -> sysroot) [./stage]
--sysroot=DIR system root (custom relocation root -> sysroot) []
--sysconfdir=DIR system configuration directory [PREFIX/etc]
+ --localstatedir=DIR system local status directory [PREFIX/var]
+ --os-type=DIST system type (debian/redhat/fedora)
--staged=module,module,... what is already in PREFIX (specify without org.glite.)
--thrflavour=flavour
--nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg]