Install Apache Airavata


General Prerequisites

  1. JAVA 8
  2. RabbitMQ
  3. Maven
  4. MySQL Database

Airavata Installation on CentOS 7

NOTE: Airavata installation on other operating systems are similar with minor changes.


  1. CentOS 7 Default open JDK 1.8.0. (minimum) is sufficient. Use "yum search jdk" to find available versions. Verify versions using "javac -version". Be sure to install the developer version.
    yum install java-1.8.0-openjdk-devel.x86_64
  2. Download RabbitMQ binary for CentOS 7 Download RabbitMQ Binary for CentOS
  3. Prerequisite for RabbitmQ Erlang can be installed using yum
    yum install erlang
  4. Unzip the downloaded RabbitMQ tar file into a folder in your local machine.
    tar -xvf rabbitmq-server-mac-standalone-3.4.1.tar.gz
  5. Start the RabbitMQ server in the bin folder using;
    ./sbin/rabbitmq-server start
  6. Install Maven using yum install. ((install the latest maven 3.3.9. Default Maven default of centOS 7).
    yum install maven
  7. Install MySQL database
    yum install mariadb-server
  8. Start maria DB with;
    systemctl start mariadb
  9. While maria DB is running run
    When executing above it will ask you for root password; provide it.
  10. Now login as the root user providing the password you gave above.
  11. Create databases required for Airavata
    create database app_catalog;
    create database experiment_catalog;
    create database replica_catalog;
    create database credential_store;
    create database workflow_catalog;
  12. Grant permission to these databases for a new user which would be used by Airavata
    Command syntax:
     grant all privileges on <DB-Name>.⁎ to '<username>'@'%' identified by '<password>'; 
    grant all privileges on app_catalog.⁎ to 'airavata'@'%' identified by 'airavata';

    NOTE: Grant permission to every databased created above. % can be replaced by 'localhost' (if DB is also in the same server as airavata). If DB is in a different server give the server name.

Airavata Installation

  1. Create a folder in your local machine (E.g.: mkdir LocalAiravata).
  2. Clone the master source (If you have not taken a clone prior) code from github to the created folder.
    git clone
  3. After cloning is completed, build the source code by executing following maven command (In LocalAiravata/airavata);
    mvn clean install
    Hint: To avoid tests (recommended for first time users) use
    mvn clean install -Dmaven.test.skip=true
  4. Locate the tar file in target directory Path:
    cd airavata/distribution/target/
  5. Navigate to locally created directory (LocalAiravata) copy the tar file
    cp airavata/distribution/target/apache-airavata-server-0.16-SNAPSHOT-bin.tar.gz ./
    cp airavata/distribution/target/ ./
  6. Now unzip either the tar or zip file of Airavata server distribution;
    tar xvzf apache-airavata-server-0.16-SNAPSHOT-bin.tar.gz
  7. Generate Credential store keystore file in the created local directory.
     keytool -genseckey -alias airavata -keyalg AES -keysize 128 -storetype jceks -keystore airavata_sym.jks
    For more information visit Credential Store Configuration Documentation
  8. In order to copy mysql jar file (always download the latest available); navigate to Airavata lib directory
    cd /LocalFolderPath/apache-airavata-server-0.16-SNAPSHOT/lib
    Now copy the mysql jar (e.g. mysql-connector-java-5.1.39-bin.jar) to lib directory (Download mysql.jar).
  9. Navigate to bin folder which contains file and open it;
    vi apache-airavata-server-0.16-SNAPSHOT/bin/
  10. Update relevant necessary properties in file.
    Change as required. For more details refer; Airavata Property File.
    • In sections; API Server Registry Configuration, Application Catalog DB Configuration, Data Catalog DB Configuration, Workflow Catalog DB Configuration, Credential Store Module Configuration
      • Comment out derby DB properties.
      • Change MySQL configurations as per the databases created above.
    • Make sure gateway ID is properly defined;
    • Server module Configuration
      • Make sure all servers required to start are added as given
    • API Server SSL Configurations
      • Give the correct path for key generation file. This is in the bin directory and it is shipped default with Airavata.
    • Credential Store module Configuration
      • Add the path to SSH key generation file
    • API Security Configuration
      • Make sure
    • Monitoring Module Configuration
      • Add your email address, username and password for email monitoring.
        This is the email account the job status change emails will be received from compute resources.
    • Zookeeper Server Configuration
      • For 'Production' scenario make;
    • AMQP Notification Configuration
      • Users can use RabbitMQ as 'Guest' users. This is the easy method. For this uncomment
      • To use as a 'Production' user
        Navigate to RabbitMQ bin folder.
        Make sure the RabbitMQ server is running. For production use
        rabbitmq-server -detached
        Create a virtual-host and user with a password. Follow documentation in RabbitMQ Users & VirtualHost To create a user;
        rabbitmqctl add_user airavata airavata
        To create a vitrual-host
        rabbitmqctl add_vhost messaging
        Provide permission to created username; 'airavata' to the created vhost
        rabbitmqctl set_permissions -p messaging airavata "." "." ".*”
  11. Download and install Zookeeper. Use Download Zookeeper
    You can download and install Zookeeper in the above created local folder; LocalAiravata
  12. Start Zookeeper
    • Copy the sample config file to zoo.cfg: cp conf/zoo_sample.cfg conf/zoo.cfg
    • Navigate to the Zookeeper bin directory and start zookeeper start
  13. In bin start the Airavata server and monitor log messages; This may require JAVA_HOME to be defined. Some configurations such as in bin/zoo.cfg and bin/ may have to be adjusted if some ports are already in use. Ports need to be open as well.
    sh all
    (This will run the airavata server in the background in demon mode)
  14. If you are in the target folder use given to start Airavata server;
    sh apache-airavata-server-0.16-SNAPSHOT/bin/ all
  15. To monitor the server starting up, view the airavata server log;
    tail -f logs/airavata.log
  16. For subsequent Airavata copies; in the local Airavata folder where source code is cloned do a git clone for the latest trunk.

Next is PGA Installation on CentOS 7