CASA Deployment on the NRAO Networks
Delivering CASA to users both inside and outside of NRAO is obviously an important portion of what the CASA team does. This page describes the where and how of the package distribution, as well as some of the technical details of the actual implementations.
Assumptions and Definitions
I assume that the CASA build system routinely produces packages as defined in Jeff Add REF and that these packages are made available via NFS mount. I will refer to the root directory where the build artifacts are placed by the CASA build system as
CASA_BUILD_ROOT.
At each site /home/casa is a directory available stewed with the purposed of serving CASA artifacts to the users. I will refer to the host physically serving the /home/casa filesystem at each installation as [
nm,gb,cv ]-
casa-server. The current physical system fulfilling this role is identified below. The user
casaadm is used for all maintenance of these CASA repositories.
Systems Currently Used
- cv-casa-server = skidmark.cv.nrao.edu
- nm-casa-server = catapult.aoc.nrao.edu
- gb-casa-server = ??
- CASA_BUILD_ROOT = /home/svn.cv.nrao.edu/content/casa
- Note: This directory is currently exported from cvfiler:/vol/vol0/rpmbuild/rpmbuild/apache
Available Artifacts
A summary of the available artifacts is presented below
- run-data: Subset of the data repository required for execution of CASA. This is what most end-users require
- Remote Access: rsync://casa.nrao.edu/run-data
- Local Access: /home/casa/data/distro
- Synchronization: On cv-casa-server synchronized by daily svn update (part of CasaDistroSync.sh). On other servers synchronized via rsync.
- casa-data: Historical alias for run-data
- Remote Access: rsync://casa.nrao.edu/casa-data
- full-data: Entire data repository
- Remote Access: rsync://casa.nrao.edu/full-data
- Local Access: /home/casa/data/trunk
- Synchronization: On cv-casa-server synchronized by daily svn update (part of CasaDistroSync.sh). On other servers synchronized via rsync.
- distro: Primary repository for download of CASA distributions
- Remote Access: http://casa.nrao.edu/distro
;
- Local Access: /home/casa/distro (in CV only)
- Synchronization: Updated via cron job on cv-casa-server from CASA_BUILD_ROOT using CasaDistroSync.sh
- developer: Access for artifacts required by the CASA development team
- Remote Access: http://casa.nrao.edu/developer * Local Access: /home/casa/developer (in CV only) * Synchronization: None, manually populated as needed by CASA Development Team
- yum repository: Repository of binary versions (RPMs) suitable for automated maintenance using yum
- Remote Access: http://casa.nrao.edu/yum-repo
; (in CV only)
- Local Access: /home/casa/yum-repo (in CV only)
- Synchronization: Automated update via rsync from CASA_BUILD_ROOT, part of CasaDistroSync.sh
Details
Data repositories: run-data, casa-data, full-data
These are made available through anonymous rsync access. Since they are synchronized using svn on
cv-casa-server there are unwanted files in the directory on disk. These svn files and directories should be suppressed. For documentation the existing exports have entries similar to:
[run-data]
path = /home/casa/data/distro
read only = true
uid = root
gid = root
use chroot = true
exclude = .svn*
Other observatory sites should use the rsync method on both run-data and full-data to synchronize local copies.
Distribution Directory
The distribution directory contains the CASA versions for download by external users. Under the top level directory there are three subdirectories,
linux,
osx, and
old. The_old_ subdirectory is used to store versions of CASA which are still required by users, but would no longer be maintained in the standard structure. The constituents of the
old area are manually inserted and no automated sync or duplication is performed.
Population and Retention
The
linux and
osx subdirectories are updated nightly from
CASA_BUILD_ROOT to deliver the latest build products. In each directory the CASA distributions are organized into release, prerelease, monthly, stable and test versions, with OS version specific artifacts stored in separate directories. The retention policy for each directory is summarized below and enforced by the
CasaDistroSync.sh script run nightly. The logic is that for each release type files older than Maximum Age will be removed, provided that it leaves at least Miminum Versions in the directory.
Public Export
The distribution directory should be export to be browsable and to allow download of the data products. The only additional requirement is that the
test artifacts not be exported, these should only be available within the NRAO network. We anticipate that this be suppressed on the casa.nrao.edu Apache Server with entries similar to
<Directory /home/casa.nrao.edu/distro/linux>
IndexIgnore test
</Directory>
<Directory /home/casa.nrao.edu/distro/osx>
IndexIgnore test
</Directory>
CASA Packages
For convenience recent versions of CASA are made available at all sites under the /home/casa/packages. These versions are primarily maintained in CV by a cron script
CasaUnpacker.sh run as casaadm on a nightly basis. This script maintains current versions for RHEL5 and RHEL6 systems following the retention policy below. Long lived versions (monthly and release) have the data directory linked to the sitewide data repository in /home/casa/data/distro to prevent falling out of date (particularly the EOP parameters).
CASA RPMs in NM
The CIS helpdesk in NM maintains a copy of the
RHEL6 64bit CASA Repo so that a few RPMs, listed below, get installed on all RHEL6 machines and are updated on CASA's schedule. This is partially a holdover from how CASA was installed on RHEL5 machines, development versions of CASA may not be self contained and still require some of these RPMs and also because at this point it is unknown what other, if any, software also needs these RPMs. Some of these RPMs are inlucded in the versions of CASA in /home/casa and could be removed if it was determined that no other software required them and development versions of CASA no longer needed them.
- almawvr-1.2-5.x86_64
- cfitsio-3.350-01.el6.x86_64
- cfitsio-devel-3.350-01.el6.x86_64
- obit-1.1.512-1.el6.x86_64 (updates frequently)
- plplot-c-5.8.0-3.el6.x86_64
- plplot-c-devel-5.8.0-3.el6.x86_64
- plplot-c-libs-5.8.0-3.el6.x86_64
- blas-devel-3.2.1-4.el6.x86_64
- lapack-devel-3.2.1-4.el6.x86_64
- pgplot-5.3.1-20.el6.x86_64
- pgplot-demos-5.3.1-20.el6.x86_64
- pgplot-devel-5.3.1-20.el6.x86_64
- pgplot-motif-5.3.1-20.el6.x86_64
- rpfits-2.23-11.el6.x86_64
- xorg-x11-server-Xvfb-1.13.0-23.1.el6_5.x86_64
--
JeffKern - 2015-06-04