Building ACME on the SPLTS Cluster

This page describes how to checkout, build and deploy the ACME meta-project onto the SPLTS cluster. You will be able to view deployed MBeans via their JMX consoles. A tidy Table of Consoles is available for you to reach the nodes directly. Your SSH Tunnels must be setup before hand.

  1. Announce the upcoming deployment
  2. Setup your SSH tunnels
  3. Create a workspace for ACME
  4. Checkout and build ACME
  5. Undeploying the current
  6. Initialize the Postgres DB
  7. Deploying the new ACME

  1. Announce the upcoming deployment
  2. Since the SPLTS cluster is designed for development and testing, the odds are good that someone else is mucking around with DAQ compononents. It has been decided that whenever something major is planned for the SPLTS cluster, it be announced on the icecube-daq-dev Jabber room on the server.

    A simple note telling other users of your intentions and time frame for deployment will suffice. It is understood that during this time, the cluster is "Hands Off" to other users and any jboss-centric processes will be stopped as needed.

  3. Setting up your SSH tunnels into the cluster nodes
  4. Before any portion of the deployment is started, you need to setup some SSH tunnels into specific nodes. This will make moving files around much easier and is required in some automation scripts invoked later in these directions.
    This will require starting multiple terminal windows on your local workstation, one per SSH connection. You may automate this step as needed. One ssh command per new terminal window:

      $ ssh splts-access
      $ ssh splts-dbs
      $ ssh splts-evbuilder
      $ ssh splts-ichubXX (all hubs)
      $ ssh splts-stringprocXX (all stringprocs)
      $ ssh splts-expcont

    Once your tunnels are established, an ssh-agent should be started on the access node for the jboss user. This is to handle the distribution of files out to the nodes.

      USER@sptls-access[user] su - jboss
      jboss@sptls-access[icecube] exec ssh-agent bash
      jboss@sptls-access[icecube] ssh-add

    With the proper passwords provided, you will have an agent running for the duration for the deployment. The agent is killed once the jboss user exits from this su session.

  5. Create a workspace for ACME
  6. Create a new dir for the ACME workspace (so it doesn't conflict with other bfd/cvs projects you may be working on)

      jboss@sptls-access[icecube] mkdir ACME_REDBAG-00-01
      jboss@sptls-access[icecube] cd ACME_REDBAG-00-01

  7. Checkout and build ACME
  8. I assume you are running ssh-agent and loaded it with a key which your account on glacier trusts, as described here, though not specific to glacier.

      jboss@sptls-access[ACME_REDBAG-00-01_ws] bfd co -r REDBAG-00-01 ACME
      jboss@sptls-access[ACME_REDBAG-00-01_ws] mkdir tools
      jboss@sptls-access[ACME_REDBAG-00-01_ws] cp ACME/ tools/tools_to_install

    Edit the new tools_to_install file and change the ANT_VERS to '1.6.0' and the ICECUBE_VERS to '0.6.1'.

    You can now correctly initialize the workspace.

      jboss@sptls-access[ACME_REDBAG-00-01_ws] bfd init $ICECUBE_TOOLS
      jboss@sptls-access[ACME_REDBAG-00-01_ws] source
      jboss@sptls-access[ACME_REDBAG-00-01_ws] ant -f ACME/ACME-build.xml

    The order here may look a bit backwards, but this allows the intended build state of ACME to be preserved in new BFD workspaces.

  9. Undeploying the current ACME
  10. You do not need to undeploy ACME if it is currently deployed. JBoss is capable of undeploying an older version when it sees a new one show up.

  11. Initialize the Postgres DB
  12. ACME requires a current version of DAQ-PROD to be deployed on the cluster in order to function properly. It is a sure guarantee that a DAQ-PROD workspace is nearby in the jboss home dir. You will need to temporarily move into that DAQ-PROD workspace and initialize the DB from there.

    With JBoss running (so the Postgres DB is visible to JBoss) run the program.

      jboss@sptls-access[ACME_REDBAG-00-01_ws] cd ../DAQ-PROD-???_ws/daq-db-init
      jboss@sptls-access[daq-db-init] ./ -f ../../ACME_REDBAG-00-01/acme-configuration/resources/jar/script.sql

    If you see SQLExceptions, try running the command again, it should run without any errors.

    Strictly speaking, this is only needed if one of the *.sql files have been modified since the last time you initialized the DB. It doesn't hurt to re-initialize it, so feel free to do it if you have any doubt.

  13. Deploying the new ACME
  14. Now deploy the new ACME from splts-access.

      jboss@sptls-access[daq-db-init] cd ../../ACME_REDBAG-00-01/deployment/SPLTS
      jboss@sptls-access[SPLTS] ./ -tqe
      jboss@sptls-access[SPLTS] ./ -tq

    At this point you have now deployed a new ACME onto the SPLTS cluster. You should see deployment info scroll by on each terminal window for the cluster nodes. Any errors should be noted and passed onto the responsible developer. Being an announced ACME release, the amount of errors should be either ignorable, or non-existent!

  15. Start the IceAxe Portal
  16. You can now start the Web portal on SPLTS. If it is not installed on the expcont node, this will not harm the rest of the deployment.

      jboss@sptls-expcont[icecube] jboss -t

This page maintained by
Martin Stoufer
Page last modified: