This repository contains two things:
- Scripts to build avst-app packages which can then be uploaded and installed from Adaptavist's package server.
- Scripts which are packaged into the various avst-app packages.
Documentation regarding the usage (setup/installation/management) of these packages can be found here.
Some additional information regarding what directories are used can be found in: share/avst-app/doc/README
It is possible to build both deb and rpm packages using Ubuntu (tested on 14.04) or CentOS (tested on 7).
Prerequisites for building packages on Ubuntu:
sudo apt-get install ruby-dev git rpm
sudo gem install fpm # Don't do this on any of our servers
Prerequisites for building packages on CentOS:
sudo yum install ruby-devel git rpm-build dpkg
sudo gem install fpm # Don't do this on any of our servers
To build the packages of Atlassian applications (using fpm), run:
./build.sh
To publish the packages of Atlassian applications to Nexus (using mvn), run:
./release.sh
Each available Atlassian product must have a directory within share/avst-app/lib/product/
.
Three notible exceptions are:
bin/avst-app/
: this is the actual shell-script installed into/usr/bin
for installation/management of Atlassian Applicationsshare/avst-app/lib/atlassian/
: the general Atlassian package, which handles common Atlassian Application installation/management tasksshare/avst-app/lib/tomcat/
: installation and setup of a Tomcat web server
There is also a share/avst-app/lib/common/
directory containing scripts that are always run for the avst-app commands.
Within the product-specific directory e.g. share/avst-app/lib/product/fisheye/
there may be one or more directories with matching names to
those found in the share/avst-app/lib/common/
directory.
Within those directories should be a number of shell-scripts performing whatever application-specific code is required for:
- startup (this is run at the start of every command)
- install (which is really just setup)
- modify
- install-service
- start
- upgrade
- prepare
- restore
- destroy
- regeneraterc
The naming of these shell-scripts determines the order in which they are run.
For each command given to avst-app, the list of scripts in share/avst-app/lib/common/<command name>.d/
are combined with those in
the product specific directory (e.g. share/avst-app/lib/product/jira/<command name>.d/
) and ordered using "natural ordering".
The following exit/return codes are used (as of 2014-10-09):
- 01: INSTANCE_NAME not set
- 01: BASE_DIR not set
- 01: Missing Tomcat server.xml
- 10: Missing variable config in avst-app.cfg.sh
- 10: Failed prerequisites
- 10: Install directory already exists
- 11: Java isn't installed
- 11: Can't initialise git repo
- 12: Missing CROWD properties in config file
- 13: HOME_DIR not set
- 14: UPM plugin install issue
- 20: Missing tarball
- 20: Invalid Bamboo server URL specified
- 20: Missing Coverity installer
- 21: Can't find INSTALL_DIR/bin/installService.sh
- 21: Can't find PROVIDER_FILESYSTEM_DIR
- 21: Can't find database connection details
- 21: Missing artifactory license
- 23: Missing Crowd SSO config file
- 23: Invalid version
- 32: Tarball extraction failed
- 32: JAR extraction failed
- 32: CROWD Wizard not passed
- 32: Missing .version file
- 32: Missing params from avst-app.cfg.sh
- 33: Missing .state file
- 34: Can't upgrade application if not installed/modified
- 36: Unsupported OS
- 38: Search service template not found in INSTALL_DIR
- 45: Can't stop service
- 46: Can't start service
- 50: Can't set CROWD_SSO for unsupported product
- 51: Missing mandatory variables for CROWD
- 52: Can't set OKTA_SSO for unsupported product
- 53: Missing mandatory variables for OKTA
- 55: Missing mandatory variables for DC
- 56: Can't setup DC for unsupported product
- 60: Synchrony driver directory provides but there is not exactly one driver file inside
- 61: Missing mandatory variables for Synchrony
- 70: Specified OKTA driver does not exist
- 77: During an Upgrade the "temporary" backup of home/install for the pre upgrade version already exists
- 78: During an Upgrade the "temporary" new home directory is NOT empty
- 79: During an Upgrade the "temporary" renamed old home directory is NOT avaliable to put back
- 99: Non systemd system detected
Make sure variables are set:
- JNDI_SOURCE_NAME
- JNDI_SOURCE_USERNAME
- JNDI_SOURCE_PASSWORD
- JNDI_SOURCE_URL
For more details and defaults check lib/tomcat/modify.d/39set_session_timout and lib/tomcat/modify.d/40tomcat_set_vars
Setting up database and credentials can be done by setting DB_SETUP_DB=1. For all available options per application check 70setup_db scripts