CACAO(Cloud Automation & Continuous Analysis Orchestration) is an orchestration service for researchers and educators that eliminates the complexity of using multiple clouds. It allows user to import templates defined in various templating language(e.g. terraform, ansible, argo workflow) from any git hosting solution (e.g. Github, Gitlab). Once a template has been created, users can deploy VMs with provisioned software with a few clicks to OpenStack Cloud (e.g., Jetstream2) and commercial cloud (e.g., AWS).
This repository holds CACAO formatted Terraform and Ansible template meant to deploy an Open Forest Observatory development VM to Jetstream2.
The following software will be installed when you launch an Open Forest Observatory VM.
- Agisoft Metashape Desktop GUI v2.1.2
- Agisoft Metashape Python Module v2.1.2
- The python library is installed in a conda environment called
meta. To activate the conda environment type in the CLIconda activate meta - Instructions for running the Metashape python script can be found here
- The python library is installed in a conda environment called
- R (v 4.x), Rstudio Desktop, and RStudio Server (v 2023.12.1)
- Multiple Users can access Rstudio server from their local web browser at
http://<public_ip_address>:8787
- Multiple Users can access Rstudio server from their local web browser at
- Anaconda3 (2023.09-0)
- Jupyter notebook
- QGIS (latest stable)
- Sublime
- GPU drivers and CUDA will be installed if using GPU flavor VM
CACAO was built as an interface for Jetstream2, which is a research cloud computing system hosted at Indiana University. Js2 is meant for large computation research including AI training and inference. It is also ideal for aerial imagery photogrammetry which needs large resources (CPUs, GPUs, RAM) to process large datasets.
The ability to use Js2 is managed through the National Science Foundation's ACCESS program. Use of ACCESS computing resources is primarily intended to be used for non-commercial research activitiy, but many types of potential users (including non-profit and commercial) may be able to get an allocation. Please check the resources here for eligibility to use ACCESS computing resources. To start the process of getting a user account go here
-
Login to CACAO on Jetstream2. You will need your ACCESS credentials to login.
-
Go to the Templates tab and select the Open Forest Observatory template
-
Click Deploy
- Select your cloud (Jetstream2) and allocation project
- For the boot image select Featured-Ubuntu22 or Featured-Ubuntu24
- Give your instance a name and select the flavor of VM. We recommend a GPU instance for faster processing in Metashape.
- Metashape is proprietary software that requires a license to run. If you have a license server, please add it's IP address.
- In Advanced settings, you can customize the size of your storage volume.
More information can be found on the CACAO documentation on Jetstream2.
Once a VM has been launched, transfer your aerial imagery data to the VM for processing. Your ssh keys need to be setup already.
-
Note the public ip address of the VM instance
-
We recommend using the CLI tool
scpto transfer data between your local machine and the VM -
On your local machine, go to a terminal and use the
scptool to transfer data onto the VM
scp -r </my/local/directory> <access-ci_username>@remote_host_publicIP:</remote/directory/>
scp -r <access-ci_usernam>e@remote_host_publicIP:</remote/directory> </my/local/directory>
You can edit the software stack https://github.com/open-forest-observatory/cacao-terraform-ofo/tree/main/ansible/roles/ofo/tasks
The main.yaml controls all the software, and there is a yaml for each individual software.
Editing of the template description can be done in the `metadata.json` file.