Install Apache Airavata

Select...

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.

Pre-Installations

  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
    mysql_secure_installation
    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>'; 
    E.g.:
    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 https://github.com/apache/airavata.git
  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 ./
    OR
    cp airavata/distribution/target/apache-airavata-server-0.16-SNAPSHOT-bin.zip ./
  6. Now unzip either the tar or zip file of Airavata server distribution;
    unzip apache-airavata-server-0.16-SNAPSHOT-bin.zip
    OR
    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 airavata-server.properties and open it;
    vi apache-airavata-server-0.16-SNAPSHOT/bin/airavata-server.properties
  10. Update relevant necessary properties in airavata-server.properties 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;
      default.registry.gateway=php_reference_gateway
    • Server module Configuration
      • Make sure all servers required to start are added as given
        servers=apiserver,orchestrator,gfac,credentialstore
    • 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.
        apiserver.keystore=/home/airavata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT/bin/airavata.jks
    • Credential Store module Configuration
      • Add the path to SSH key generation file
        E.g.: credential.store.keystore.url=/home/airavata/LocalAiravata/airavata-sym.jks
    • API Security Configuration
      • Make sure
        api.secured=false
        TLS.enabled=false
    • 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. email.based.monitor.host=imap.gmail.com
        email.based.monitor.address=jobs@sample.org
        email.based.monitor.password=SamplePassword
    • Zookeeper Server Configuration
      • For 'Production' scenario make;
        embedded.zk=false
    • AMQP Notification Configuration
      • Users can use RabbitMQ as 'Guest' users. This is the easy method. For this uncomment
        rabbitmq.broker.url=amqp://localhost:5672
      • 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 "." "." ".*”
        Uncomment rabbitmq.broker.url=amqp://airavata:airavata@localhost:5672/messaging.
  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
      zkServer.sh 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/airavata-server.properties may have to be adjusted if some ports are already in use. Ports need to be open as well.
    sh airavata-server-start.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/airavata-server-start.sh 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 https://github.com/apache/airavata.git for the latest trunk.

Next is PGA Installation on CentOS 7