GLite on Nikhef Desktops

From PDP/Grid Wiki
Jump to navigationJump to search

Notes on how to install the gLite UI tarball for Nikhef desktop use

Download the tarballs from the glite website:

Make sure to download both the glite-UI tarball itself and the glite-UI-externals tarball.

Extract the tarballs

  • Log in as the user 'gridadm' on a Nikhef desktop, login.nikhef.nl (SL5.5) or login2.nikhef.nl (SL5.5)
  • Go to the global installation directory
cd /global/ices/lcg
  • Create a directory for the new tarball and 'cd' into it,
mkdir glite<VERSION>
cd glite<VERSION>

where <VERSION> denotes the full version number of the glite update, e.g. 3.1.35

tar xvzf glite-UI-<VERSION>-0.tar.gz
tar xvzf glite-UI-<VERSION>-0-external.tar.gz

Install compatibility librarier for SL6

For Scientific Linux 6 a few compatibility libraries are needed from SL/CentOS 5. Copy them over from an SL5 machine:

cd /global/ices/lcg/glite<VERSION>/glite/lib64
cp -a /lib64/libssl* .
cp -a /lib64/libcrypto* .
cp -a /lib64/libexpat.so.0* .
cp -a /usr/lib64/libcurl* .
cp -a /usr/lib64/libreadline.so* .

Check the dependencies for a few executables on an SL6 machine:

ldd /global/ices/lcg/glite<VERSION>/glite/bin/voms-proxy-info  | grep "not found"
ldd /global/ices/lcg/glite<VERSION>/globus/bin/globus-url-copy | grep "not found" 

Configure using Yaim

  • Copy a site-info.def and the vo.d directory from a previous installation
cd /global/ices/lcg/glite<VERSION>
export INSTALL_ROOT=$PWD
export INSTALL_ROOT_PREV_RELEASE=<Path to the previous installed version>
cp -rp $INSTALL_ROOT_PREV_RELEASE/site-info.def $INSTALL_ROOT_PREV_RELEASE/vo.d .
  • Modify the INSTALL_ROOT variable to point to the new version in site-info.def
  • Be sure that the YAIM (YAIM_VERSION) and JDK (JAVA_LOCATION) versions are the right ones in site-info.def
  • Don't worry about the list of VOs in this site-info.def file. We'll fix that later
  • Create a grid-security directory, otherwise Yaim will barf:
cd $INSTALL_ROOT/etc
ln -fs ../../grid-security
  • Run Yaim
$INSTALL_ROOT/glite/yaim/bin/yaim -c -s $INSTALL_ROOT/site-info.def -n UI_TAR

Create the log directory

The user gridadm has a crontab on host ribble.nikhef.nl which keeps the grid certificates up-to-date. The output of this script is written to the directory $INSTALL_ROOT/log, so we'd better make sure this directory exists:

 mkdir $INSTALL_ROOT/log

Clean up after Yaim

There are a few things that need to be cleaned up/corrected after a default Yaim configuration:

  • use the correct grid-security directory
cd $INSTALL_ROOT/external/etc
rm -rf grid-security
ln -fs ../../../grid-security
  • By default Yaim creates symlinks in the directory $INSTALL_ROOT/etc/profile.d:
$INSTALL_ROOT/etc/profile.d/grid-env.csh -> ../../external/etc/profile.d/grid-env.csh
$INSTALL_ROOT/etc/profile.d/grid-env.sh -> ../../external/etc/profile.d/grid-env.sh

We replace these links by scripts that figure out which platform they are running on:

cd $INSTALL_ROOT/etc
rm -rf profile.d
ln -fs ../../etc/profile.d

The contents of these scripts contain a hard-coded reference to the platform-specific gLite version. The contents of the scripts are shown below.

For csh/tcsh:

set RHEL_VERSION=`/bin/sed -e 's/.* \([0-9]\).*/\1/' /etc/redhat-release`
if ( "$RHEL_VERSION" < 4 ) then
  echo "WARNING WARNING WARNING"
  echo "You're running on RHEL/SLC/CentOS 3.x! glite support for this platform is deprecated!"
  echo " (for now things will/should still work but in the near future this might change...)"
  source /global/ices/lcg/glite3.0.21/etc/profile.d/grid_env.csh
else
  set mycshtmpfile=`mktemp /tmp/gridenv.XXXXXX`
  bash -c "export ISCSHELL=yes ; source /global/ices/lcg/current/etc/profile.d/grid_env.sh" >> $mycshtmpfile
  source $mycshtmpfile
  rm -f $mycshtmpfile

  # Allow dcap to work 
  setenv DCACHE_CLIENT_ACTIVE 1
endif

and for bash/zsh:

if [ "X${GLITE_ENV_SET+X}" = "X" ]
then
  RHEL_VERSION=`/bin/sed -e 's/.* \([0-9]\).*/\1/' /etc/redhat-release`
  if [ "${RHEL_VERSION}" -lt 4 ]
  then
    echo "WARNING WARNING WARNING" 1>&2
    echo "You're running on RHEL/SLC/CentOS 3.x! glite support for this platform is deprecated!" 1>&2
    echo " (for now things will/should still work but in the near future this might change...)" 1>&2
    . /global/ices/lcg/glite3.0.21/etc/profile.d/grid_env.sh
  else
    ARCH=`/bin/uname -i`
    if [ "${RHEL_VERSION}" -eq 4 -o "${ARCH}" = "i386" ]
    then
        INSTALL_ROOT=/global/ices/lcg/glite3.1
    else
        INSTALL_ROOT=/global/ices/lcg/glite3.2
    fi
    . ${INSTALL_ROOT}/external/etc/profile.d/grid-env.sh

    # fix a few things that Yaim breaks...
    EXTERNAL_BIN=${INSTALL_ROOT}/external/usr/bin
    if [ "$ARCH" = "x86_64" -a -d "${EXTERNAL_BIN}" ]
    then
      export PATH=${EXTERNAL_BIN}:${PATH}
    fi
    unset SRM_PATH

    # allow DCAP to work
    export DCACHE_CLIENT_ACTIVE=1
  fi
fi

Note that glite 3.0.21 is the last version of glite that is supported on SLC 3.x.

  • copy over glite_wms*conf files from bosui. To make absolutely sure that we're supporting the same VOs on the Nikhef desktops as on bosui.nikhef.nl we copy over the glite_wms*conf files and the vomses directory from bosui:
    • Make a tarball of the config files:
slogin bosui
cd /opt/glite/etc
tar czvf ~/glite-conf.tar.gz */glite*conf vomses
    • Copy over the file and extract it:
cd $INSTALL_ROOT/glite/etc
scp <user>@bosui:glite-conf.tar.gz .
tar xzvf glite-conf.tar.gz
rm glite-conf.tar.gz

Test the new installation

First we install the new installation directly, i.e. without the platform detection script:

  • Load the environment first
. /global/ices/lcg/glite<VERSION>/external/etc/profile.d/grid-env.sh ## Note the 'external'!

and watch for any warnings/errors

  • Generate a proxy
voms-proxy-init -voms pvier
  • Delegate your proxy to the WMS
glite-wms-job-delegate-proxy -d $LOGNAME.test
  • Do a job list match:
glite-wms-job-list-match -d $LOGNAME.test HelloWorld.jdl

If this works then update the glite3.2 symlink to point to the new installation:

cd /global/ices/lcg
rm glite3.2
ln -fs g glite<VERSION> glite3.2

Now start with a fresh shell (i.e. one where the /global/ices environment is not yet loaded) :

  • Load the environment first
. /global/ices/lcg/glite3.2/etc/profile.d/grid-env.sh  ## Note the lack of 'external'!

and watch for any warnings/errors

  • Generate a proxy again:
voms-proxy-init -voms pvier