blob: 1f94a505c1df62b8dfe4d2e644979d05c3371ed7 [file] [log] [blame] [view]
# airavata-ansible
Ansible script to deploy Apache Airavata and the Airavata Django Portal. There
are ansible roles to install Airavata pre-requisites (RabbitMQ, Zookeeper,
MariaDB).
## Ansible installation
Note: the following assumes a Bash shell.
1. Download and install the latest version of Python. Minimum required version
is 3.8. See https://www.python.org/downloads/ or use your system's package
manager.
2. Create a virtual environment in this directory
cd airavata/dev-tools/ansible
python3 -m venv ENV
3. Source the environment (you'll need to do this each time before using
ansible commands)
source ENV/bin/activate
4. Install ansible and any other dependencies.
pip install -r requirements.txt
Now you should be ready to run `ansible-playbook` and other ansible commands.
## Supported OS with versions.
- Centos 7
- Rocky Linux 8
- The PGA should also work on Ubuntu 16
## Roles
- **env_setup** :- Create user and group, install oracle java 8, open firewall
ports.
- **zookeeper** :- Download and install zookeeper.
- **rabbitmq** :- Download and install rabbitmq as service.
- **database** :- Download and install mysql(mariadb) as a service.
- **common** :- Checkout Airavata source from git and run maven build. Move
keystore files.
- **gfac** :- Setup and deploy Gfac component.
- **registry** Setup and deploy registry component.
- **api-orch** :- Setup and deploy Api-Orch components.
- **pga** :- Setup and deploy Airavata PHP Gateway.
- **keycloak** :- Setup and deploy Keycloak Identity management server. (Note:
Check roles/keycloak/README.md for details)
## Useful commands
- Deploy database:
`ansible-playbook -i inventories/path/to/inventory/dir database.yml`
- Deploy Airavata middleware:
`ansible-playbook -i inventories/path/to/inventory/dir airavata.yml`
- Deploy Keycloak IAM server:
`ansible-playbook -i inventories/path/to/inventory/dir keycloak.yml`
- Deploy PGA: `ansible-playbook -i inventories/path/to/inventory/dir pga.yml`
- Deploy everything:
`ansible-playbook -i inventories/path/to/inventory/dir site.yml`
## Configurations
- copy the `inventories/template` directory and modify CHANGEME values