Rose/Cylc setup

Rose/Cylc site install


Your need root access and this should ideally be done centrally.


  1. sudo yum install python-cherrypy python-jinja2 python-requests python-simplejson python-sqlalchemy python-pyro subversion subversion-perl perl-Config-IniFiles perl-DBD-SQLite perl-Tk perl-XML-Parser perl-Time-Piece xxdiff rsync diffutils trac

  2. sudo yum install graphviz graphviz-devel

  3. sudo easy_install pygraphviz [pyro]
    Note that python-graphviz from repository may not work, must use pygraphviz

  4. Install Cylc Untar release file and once in cylc directory run
    PATH=$PWD/bin:$PATH make
    Need to make sure conf/global.rc is correctly set up if required

  5. Install Rose Untar release file and once in rose directory run
    PATH=$PWD/bin:$PATH
    Need to make sure etc/rose.conf file is correctly set up

  6. Install FCM Untar release file and once in fcm directory run
    PATH=$PWD/bin:$PATH
    Need to make sure files in etc/fcm are correctly set up

  7. Put all software in PATH

  8. Set-up - Keywords
    create the file: FCM_PATH=/path/to/fcm/; $FCM_PATH/etc/keywords.cfg Populate it with the JULES keywords given below:
    location{primary}[jules.x] = https://code.metoffice.gov.uk/svn/jules/main
    location{primary}[jules_doc.x] = https://code.metoffice.gov.uk/svn/jules/doc
    
  9. Set-up - rose configuration
    create the file ROSE_PATH=/path/to/rose/; $ROSE_PATH/etc/rose.conf something like this (this is similar to the VM file and will need adjusting for your site):
    [rose-config-edit]
    icon-path-scheduler=/path/to/cylc/images/icon.png
    
    [rose-mpi-launch]
    launcher-fileopts.mpiexec=-file $ROSE_COMMAND_FILE
    launcher-list=mpiexec
    launcher-preopts.mpiexec=-n $NPROC
    
    [rose-stem]
    automatic-options=SITE=??? #use site id
    
    [rose-suite-log]
    rose-bush=/localhost/rose-bush/ #configure for your site
    
    [rosie-db]
    db.tmp=sqlite:////srv/svn/rosie-tmp-db.sqlite #configure for your site
    repos.tmp=/srv/snv/roses-tmp #configure for your site
    
    [rosie-go]
    icon-path-scheduler=/path/to/cylc/images/icon.png
    
    [rosie-id]
    prefix-default=tmp
    prefix-location.tmp=http://localhost/svn/roses-tmp
    prefix-location.u=https://code.metoffice.gov.uk/svn/roses-u
    prefix-username.u=<MOSRS USERNAME>
    prefix-web.u=https://code.metoffice.gov.uk/trac/roses-u/intertrac/source:
    prefix-ws.u=https://code.metoffice.gov.uk/rosie/u
    prefixes-ws-default=u tmp
    
  10. You will need a site .cfg to be stored in $JULES_trunk/etc/fcm-make/platform/???.cfg file which should be something like this:
    ################################################################################
    # This platform file should be used when building on the JULES ??? Linux 
    # ?????
    #
    # It makes sure that the compiler is gfortran, that MPI is off (since the
    # default NetCDF installation does not support MPI), and that the NetCDF paths
    # are correctly set up should the user switch NetCDF on
    ################################################################################
    
    # Override any of the input variables that we need to for the ??? Linux 
    # ?????
    $JULES_REMOTE = local
    $JULES_COMPILER = gfortran
    $JULES_MPI = nompi
    $JULES_NETCDF = netcdf
    $JULES_NETCDF_INC_PATH = /usr/lib64/gfortran/modules
    $JULES_NETCDF_LIB_PATH = /usr/lib64
    
    # Since we don't need to modify anything else, we can just include the custom
    # platform configuration to set the variables
    include = $HERE/custom.cfg
    

    Please create a branch and add your site ???.cfg file to the $JULES_trunk/etc/fcm-make/platform/ directory. This need so to be a ticket and then it can be reviewed by the JULES system manager so that it can be be part of the next JULES version code release for all your site to use. Therefore each user will not need there own version of the file.

    For further help email JULES Support.


MOSRS password caching


Configuring MOSRS access

You need to configure your ~/.subversion/servers file as follows:

[groups]
metofficesharedrepos = code*.metoffice.gov.uk

[metofficesharedrepos]
# Specify your Science Repository Service user name here
username = myusername
store-plaintext-passwords = no

Remember to replace myusername with your actual Science Repository Service user name. Your user name should be a single word in lower case.


How to cache your password

Please ensure that you comment out or remove any blank setting for password-stores in your ~/.subversion/config file, for example, after commenting out the line, your file may look like this:

[auth]
...
#password-stores =


Using GNOME keyring

Set up a new login keyring as follows:


Once you have done this you should see a login keyring listed under the Passwords tab and if you right click on the key the Unlock menu should be grayed out.


Exit seahorse by closing the window.


Cache your password

Run this command upto three times: svn info https://code.metoffice.gov.uk/svn/test
You'll be asked for your Science Repository Service password the first and maybe the second time. The third time, it should not prompt you.


You then need to run the corresponding rosie command: rosie hello --prefix=u
This will prompt for your username (your Science Repository Service username) and your Science Repository Service password. The password will then be cached in GNOME keyring for later use. Your username will get automatically saved in your ~/.metomi/rose.conf file.


Using gpg-agent

gpg-agent versions known to work: 2.0.14 (and probably later versions).

Install the scripts mosrs-setup-gpg-agent and mosrs-cache-password in a directory which is included in your $PATH. The contents may need adapting to your local setup (in particular the path to gpg-preset-passphrase in mosrs-cache-password).

You then simply need to run the following prior to any work requiring access to the repositories: . mosrs-setup-gpg-agent

This will prompt for your password and test that your password had been cached successfully.


If you want this to run automatically when you first login, add the following to the end of your .bashrc file (assuming that bash is your default shell):

[[ "$-" != *i* ]] && return # Stop here if not running interactively
. mosrs-setup-gpg-agent

Note that the cached password is configured to expire after 12 hours. Simply run the command mosrs-cache-password to re-cache it if this happens.



Data retrieval


FTP password is
  1. Choose a location for your ~25GB of data to be saved to be accessed by all: ROSESTEM_DATA='/path/to/rosetsem/data/'
  2. cd $ROSESTEM_DATA
  3. KGO_DIR=$ROSESTEM_DATA/rose-stem-kgo/vn#.# #where #.# needs to be the appropriate JULES version number
  4. mkdir -p $KGO_DIR

  5. #Copy across the data including the ERAINT data and the GSWP2 data only for rose-stem to run
  6. wget --user=ext_jules --password=<SEE LINK ABOVE> ftp://ftp.metoffice.gov.uk/benchmarking/benchmark.data.tar.gz
  7. tar -xvzf benchmark.data.tar.gz
  8. rm benchmark.data.tar.gz

  9. #Copy across the FULL GSWP2 dataset. NOTE: this is 22BG and only get it if you need it.
  10. cd gswp2
  11. wget --user=ext_jules --password=<SEE LINK ABOVE> ftp://ftp.metoffice.gov.uk/benchmarking/benchmark_gswp2_data.tar.xz
  12. tar -xvJf benchmark_gswp2_data.tar.xz #Note this may take a short while.
  13. rm benchmark_gswp2_data.tar.xz


Running JULES rose stem



To run JULES rose stem you need nccmp installed. It is open source software for comparing NetCDF data.


Creating site KGO for JULES rose stem



Known Good Output (KGO) is the good data that nccmp uses to compare with the new output that the rose stem suite has created in the current suite run.

  1. KGO_DIR=<path/to/jules/rose-stem-kgo/>
  2. VN=vn#.#_t??? #replace with the appropriate KGO version
  3. mkdir -p $KGO_DIR/$VN
  4. JULES_TRUNK=<path/to/jules/vn#.#/trunk> #replace vn#.# with the appropriate JULES version number
  5. cd $JULES_TRUNK
  6. #This suite will fail, but do it anyway as we need to create the KGO
  7. rose stem --group=all --source=. -S HOUSEKEEPING=false --new
  8. cd ~/cylc-run/trunk
  9. cp work/1/loobos_*/output/* $KGO_DIR/$VN
  10. cp work/1/gswp2_*/output/* $KGO_DIR/$VN

  11. Now rose stem should be configured for your site and compliers.

  12. Test rose stem rose stem --group=all --source=. --new You should have no failures this time.

Rose Bush

Rose Bush is an intranet web service at your site on pre-setup on the Virtual Machine (VM). It enables users to view their suite logs using a web browser. Depending on your specific site and systems you may not have the the required admin access rights to setup the service.
For more information please see the Rose Documentation on Rose Bush.




© British Crown Copyright 2006-17 Met Office.
This document is released under the British Open Government Licence.