This repository enables the deployment of the noctua stack to AWS. It includes minerva, barista, and noctua and it points to an external amigo instance.
- Important ansible files:
- vars.yaml
- docker-vars.yaml
- s3-vars.yaml
- stage.yaml
- start_services.yaml
- blazegraph.jnl
- Cloned repositories:
- noctua-form, noctua-landing-page, noctua-models, go-site and noctua-visual-pathway-editor.
- s3 credentials used to push apache logs to s3 buckets
- github OAUTH client id and secret
- docker-production-compose and various configuration files from template directory
Note the script has a -dry-run option.
>pip install go-deploy==0.3.0 # requires python >=3.8.5
>go-deploy -h
We use S3 terraform backend to store terraform's state. See production/backend.tf.sample
Noctua uses OAUTH for authentication. See templates/github.yaml
if you do not have a journal see production/gen_journal.sh.sample to generate one
Use DNS records for noctua and barista. Once the stack is ready you would need to point these to elastic ip address of the stack,
Use the dns name of the external golr instance running alongside amigo
Copy sample files and modify as needed. For the terraform worksapce we append the date. As an example we use production-yy-mm-dd
cp ./production/backend.tf.sample aws/backend.tf
cp ./production/config-instance.yaml.sample config-instance.yaml
go-deploy -init -c config-instance.yaml -w production-yy-mm-dd -d aws -verbose
cp ./production/config-stack.yaml.sample config-stack.yaml
go-deploy -c config-stack.yaml -w production-yy-mm-dd -d aws -verbose
The elastic public ip address shows up in the logs when deploying but it can also be found in production-yy-mm-dd.cfg Point the noctua and barista DNS entries mentioned above to this ip address
- Use
http://{public_ip}
# Make sure you pointing to the correct workspace
terraform -chdir=aws workspace show
terraform -chdir=aws destroy