Difference between revisions of "GLite on Nikhef Desktops"

From PDP/Grid Wiki
Jump to navigationJump to search
 
(20 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 ==
 
== Create the log directory ==
  
The user <tt>gridadm</tt> has a crontab on host <tt>ribble.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:
+
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
 
   mkdir $INSTALL_ROOT/log
  
Line 51: Line 68:
 
  $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 links by scripts that figure out which platform they are running on. Therefore, copy thecorrect grid-env scripts from the previous release ($INSTALL_ROOT_PREV_RELEASE/etc/profile.d) in the release's directory etc/profile.d directory and create symlinks:
+
We replace these links by scripts that figure out which platform they are running on:
  grid_env.csh -> grid-env.csh
+
cd $INSTALL_ROOT/etc
grid_env.sh -> grid-env.sh
+
rm -rf profile.d
 +
  ln -fs ../../etc/profile.d
  
The contents of the copied scripts contain a hard-coded reference to the current gLite version. Change that version to reflect the correct value for the new installation. The contents of the scripts are shown below.
+
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:
 
For csh/tcsh:
Line 67: 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 76: 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 83: 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
  
 
Note that glite 3.0.21 is the last version of glite that is supported on SLC 3.x.
 
Note that glite 3.0.21 is the last version of glite that is supported on SLC 3.x.
('''TODO''') Note that gLite 3.2 is currently not supported via this script.
 
  
 
* 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 <tt>bosui.nikhef.nl</tt> we copy over the glite_wms*conf files and the <tt>vomses</tt> directory from <tt>bosui</tt>:
 
* 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 <tt>bosui.nikhef.nl</tt> we copy over the glite_wms*conf files and the <tt>vomses</tt> directory from <tt>bosui</tt>:
Line 111: 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
Line 120: Line 151:
 
* 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 16: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