Install Apache Airavata
General Prerequisites
- JAVA 8
- Java installation on CentOS, Mac, Windows, etc.. - Oracle JAVA Installation
- RabbitMQ
- Download the RabbitMQ Binary
Select the download file as per the operating system of your machine/server. - Same link has installing guide documentation as well. E.g.:MAC Installation Guide
- For detailed information on getting RabbitMQ started, stopped, etc please visit RabbitMQ Documentation
- Download the RabbitMQ Binary
- Maven
- Download Maven (java based code building tool).
- MySQL Database
Airavata Installation on CentOS 7
NOTE: Airavata installation on other operating systems are similar with minor changes.
Pre-Installations
- 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
- Download RabbitMQ binary for CentOS 7
Download RabbitMQ Binary for CentOS
- Prerequisite for RabbitmQ Erlang can be installed using yum
yum install erlang
- Unzip the downloaded RabbitMQ tar file into a folder in your local machine.
tar -xvf rabbitmq-server-mac-standalone-3.4.1.tar.gz
- Start the RabbitMQ server in the bin folder using;
./sbin/rabbitmq-server start
- Install Maven using yum install. ((install the latest maven 3.3.9. Default Maven default of centOS 7).
yum install maven
- Install MySQL database
yum install mariadb-server
- Start maria DB with;
systemctl start mariadb
- While maria DB is running run
When executing above it will ask you for root password; provide it.mysql_secure_installation
- Now login as the root user providing the password you gave above.
- 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;
- Grant permission to these databases for a new user which would be used by Airavata
Command syntax:
E.g.: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
- Create a folder in your local machine (E.g.: mkdir LocalAiravata).
- 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
- After cloning is completed, build the source code by executing following maven command (In LocalAiravata/airavata);
Hint: To avoid tests (recommended for first time users) usemvn clean install
mvn clean install -Dmaven.test.skip=true
- Locate the tar file in target directory
Path:
cd airavata/distribution/target/
- Navigate to locally created directory (LocalAiravata) copy the tar file
ORcp airavata/distribution/target/apache-airavata-server-0.16-SNAPSHOT-bin.tar.gz ./
cp airavata/distribution/target/apache-airavata-server-0.16-SNAPSHOT-bin.zip ./
- Now unzip either the tar or zip file of Airavata server distribution;
ORunzip apache-airavata-server-0.16-SNAPSHOT-bin.zip
tar xvzf apache-airavata-server-0.16-SNAPSHOT-bin.tar.gz
- Generate Credential store keystore file in the created local directory.
For more information visit Credential Store Configuration Documentationkeytool -genseckey -alias airavata -keyalg AES -keysize 128 -storetype jceks -keystore airavata_sym.jks
- In order to copy mysql jar file (always download the latest available); navigate to Airavata lib directory
Now copy the mysql jar (e.g. mysql-connector-java-5.1.39-bin.jar) to lib directory (Download mysql.jar).cd /LocalFolderPath/apache-airavata-server-0.16-SNAPSHOT/lib
- Navigate to bin folder which contains file airavata-server.properties and open it;
vi apache-airavata-server-0.16-SNAPSHOT/bin/airavata-server.properties
- 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.
- Comment out derby DB properties.
- 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
- 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.
apiserver.keystore=/home/airavata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT/bin/airavata.jks
- 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
E.g.: credential.store.keystore.url=/home/airavata/LocalAiravata/airavata-sym.jks
- Add the path to SSH key generation file
- API Security Configuration
- Make sure
api.secured=false
TLS.enabled=false
- 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. email.based.monitor.host=imap.gmail.com
email.based.monitor.address=jobs@sample.org
email.based.monitor.password=SamplePassword
- Add your email address, username and password for email monitoring.
- Zookeeper Server Configuration
- For 'Production' scenario make;
embedded.zk=false
- For 'Production' scenario make;
- 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
Create a virtual-host and user with a password. Follow documentation in RabbitMQ Users & VirtualHost To create a user;rabbitmq-server -detached
To create a vitrual-hostrabbitmqctl add_user airavata airavata
Provide permission to created username; 'airavata' to the created vhostrabbitmqctl add_vhost messaging
Uncomment rabbitmq.broker.url=amqp://airavata:airavata@localhost:5672/messaging.rabbitmqctl set_permissions -p messaging airavata "." "." ".*”
- Users can use RabbitMQ as 'Guest' users. This is the easy method. For this uncomment
- In sections; API Server Registry Configuration, Application Catalog DB Configuration, Data Catalog DB Configuration, Workflow Catalog DB Configuration, Credential Store Module Configuration
- Download and install Zookeeper. Use Download Zookeeper
You can download and install Zookeeper in the above created local folder; LocalAiravata - 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
- 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.
(This will run the airavata server in the background in demon mode)sh airavata-server-start.sh all
- 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
- To monitor the server starting up, view the airavata server log;
tail -f logs/airavata.log
- 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