Difference between revisions of "GLite on Nikhef Desktops"

From PDP/Grid Wiki
Jump to navigationJump to search
 
(24 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
Download the tarballs from the glite website:
 
Download the tarballs from the glite website:
  
* glite 3.1: http://glite.web.cern.ch/glite/packages/R3.1/updates.asp
+
* glite 3.1: http://glite.web.cern.ch/glite/packages/R3.1/updates.asp (Currently not used)
 
* glite 3.2: http://glite.web.cern.ch/glite/packages/R3.2/sl5_x86_64/updates.asp
 
* glite 3.2: http://glite.web.cern.ch/glite/packages/R3.2/sl5_x86_64/updates.asp
  
Line 10: Line 10:
 
== Extract the tarballs ==
 
== Extract the tarballs ==
  
* Log in as the user 'gridadm' on a Nikhef desktop, <tt>login.nikhef.nl</tt> (SL4) or <tt>login2.nikhef.nl</tt> (SL5)
+
* Log in as the user 'gridadm' on a Nikhef desktop, <tt>login.nikhef.nl</tt> (SL5.5) or <tt>login2.nikhef.nl</tt> (SL5.5)
 
* Go to the global installation directory
 
* Go to the global installation directory
 
  cd /global/ices/lcg
 
  cd /global/ices/lcg
Line 17: Line 17:
 
  cd glite<VERSION>
 
  cd glite<VERSION>
 
where <tt><VERSION></tt> denotes the full version number of the glite update, e.g. 3.1.35
 
where <tt><VERSION></tt> denotes the full version number of the glite update, e.g. 3.1.35
* Unpack the tarballs
+
* Download the Tarball and the User Dependencies for Tarball from http://glite.web.cern.ch/glite/packages/R3.2/sl5_x86_64/deployment/glite-UI/glite-UI.asp and unpack them
tar xzf .../glite-UI-<VERSION>-0.tar.gz
+
tar xvzf glite-UI-<VERSION>-0.tar.gz
  tar xzf .../glite-UI-<VERSION>-0-external.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 ==
 
== Configure using Yaim ==
  
* Copy a <tt>site-info.def</tt> from a previous installation
+
* Copy a <tt>site-info.def</tt> and the <tt>vo.d</tt> directory from a previous installation
 
  cd /global/ices/lcg/glite<VERSION>
 
  cd /global/ices/lcg/glite<VERSION>
 
  export INSTALL_ROOT=$PWD
 
  export INSTALL_ROOT=$PWD
  cp -rp ../glite3.1.35/site-info.def ../glite3.1.35/vo.d .
+
export INSTALL_ROOT_PREV_RELEASE=<Path to the previous installed version>
* Modify the INSTALL_ROOT variable to point to the new 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 <tt>site-info.def</tt> file. We'll fix that later
 
* Create a grid-security directory, otherwise Yaim will barf:
 
* Create a grid-security directory, otherwise Yaim will barf:
 
  cd $INSTALL_ROOT/etc
 
  cd $INSTALL_ROOT/etc
 
  ln -fs ../../grid-security
 
  ln -fs ../../grid-security
 
* Run Yaim
 
* Run Yaim
  $PWD/glite/yaim/bin/yaim -c -s $PWD/site-info.def -n UI_TAR
+
  $INSTALL_ROOT/glite/yaim/bin/yaim -c -s $INSTALL_ROOT/site-info.def -n UI_TAR
 +
 
 +
== Create the log directory ==
 +
 
 +
The user <tt>gridadm</tt> has a crontab on host <tt>login2.nikhef.nl</tt> which keeps the grid certificates up-to-date. The output of this script is written to the directory <tt>$INSTALL_ROOT/log</tt>, so we'd better make sure this directory exists:
 +
  mkdir $INSTALL_ROOT/log
  
 
== Clean up after Yaim ==
 
== Clean up after Yaim ==
  
There are a few things that need to be cleaned up/correct after a default Yaim configuration:
+
There are a few things that need to be cleaned up/corrected after a default Yaim configuration:
  
 
* use the correct grid-security directory
 
* use the correct grid-security directory
Line 43: Line 65:
 
  ln -fs ../../../grid-security
 
  ln -fs ../../../grid-security
  
* copy over correct grid-env scripts from the previous release. By default Yaim creates symlinks in the directory $INSTALL_ROOT/etc/profile.d:
+
* 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.csh -> ../../external/etc/profile.d/grid-env.csh
 
  $INSTALL_ROOT/etc/profile.d/grid-env.sh -> ../../external/etc/profile.d/grid-env.sh
 
  $INSTALL_ROOT/etc/profile.d/grid-env.sh -> ../../external/etc/profile.d/grid-env.sh
We replace these scripts by scripts that figure out which platform they are running on. For csh/tcsh:
+
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`
 
  set RHEL_VERSION=`/bin/sed -e 's/.* \([0-9]\).*/\1/' /etc/redhat-release`
Line 56: Line 85:
 
  else
 
  else
 
   set mycshtmpfile=`mktemp /tmp/gridenv.XXXXXX`
 
   set mycshtmpfile=`mktemp /tmp/gridenv.XXXXXX`
   bash -c "export ISCSHELL=yes ; source /global/ices/lcg/glite<VERSION>/external/etc/profile.d/grid-env.sh" >> $mycshtmpfile
+
   bash -c "export ISCSHELL=yes ; source /global/ices/lcg/current/etc/profile.d/grid_env.sh" >> $mycshtmpfile
 
   source $mycshtmpfile
 
   source $mycshtmpfile
 
   rm -f $mycshtmpfile
 
   rm -f $mycshtmpfile
 +
 +
  # Allow dcap to work
 +
  setenv DCACHE_CLIENT_ACTIVE 1
 
  endif
 
  endif
  
Line 65: Line 97:
 
  then
 
  then
 
   RHEL_VERSION=`/bin/sed -e 's/.* \([0-9]\).*/\1/' /etc/redhat-release`
 
   RHEL_VERSION=`/bin/sed -e 's/.* \([0-9]\).*/\1/' /etc/redhat-release`
   if [ "$RHEL_VERSION" -lt 4 ]
+
   if [ "${RHEL_VERSION}" -lt 4 ]
 
   then
 
   then
 
     echo "WARNING WARNING WARNING" 1>&2
 
     echo "WARNING WARNING WARNING" 1>&2
Line 72: Line 104:
 
     . /global/ices/lcg/glite3.0.21/etc/profile.d/grid_env.sh
 
     . /global/ices/lcg/glite3.0.21/etc/profile.d/grid_env.sh
 
   else
 
   else
     INSTALL_ROOT=/global/ices/lcg/glite<VERSION>
+
     ARCH=`/bin/uname -i`
     . $INSTALL_ROOT/external/etc/profile.d/grid-env.sh
+
    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...
 
     # fix a few things that Yaim breaks...
     if [ `/bin/uname -i` = "x86_64" ]
+
    EXTERNAL_BIN=${INSTALL_ROOT}/external/usr/bin
 +
     if [ "$ARCH" = "x86_64" -a -d "${EXTERNAL_BIN}" ]
 
     then
 
     then
       export PATH=$INSTALL_ROOT/external/usr/bin:$PATH
+
       export PATH=${EXTERNAL_BIN}:${PATH}
 
     fi
 
     fi
 
     unset SRM_PATH
 
     unset SRM_PATH
 +
 +
    # allow DCAP to work
 +
    export DCACHE_CLIENT_ACTIVE=1
 
   fi
 
   fi
 
  fi
 
  fi
Line 99: Line 141:
 
== Test the new installation ==
 
== Test the new installation ==
  
 +
First we install the new installation '''directly''', i.e. without the platform detection script:
 
* Load the environment first
 
* Load the environment first
  . /global/ices/lcg/glite<VERSION>/etc/profile.d/grid-env.sh
+
  . /global/ices/lcg/glite<VERSION>/external/etc/profile.d/grid-env.sh ## Note the 'external'!
 
and watch for any warnings/errors
 
and watch for any warnings/errors
 
* Generate a proxy
 
* Generate a proxy
 
  voms-proxy-init -voms pvier
 
  voms-proxy-init -voms pvier
 
* Delegate your proxy to the WMS
 
* Delegate your proxy to the WMS
  glite-wms-delegate-proxy -d $LOGNAME.test
+
  glite-wms-job-delegate-proxy -d $LOGNAME.test
 
* Do a job list match:
 
* Do a job list match:
 
  glite-wms-job-list-match -d $LOGNAME.test HelloWorld.jdl
 
  glite-wms-job-list-match -d $LOGNAME.test HelloWorld.jdl
 +
 +
If this works then update the <tt>glite3.2</tt> 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 <tt>/global/ices</tt> 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

Latest revision as of 17:35, 22 April 2014

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 login2.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