browsertrix/ansible
Francis Kayiwa 6833c9d676
Digital ocean setup (#314)
- Ansible playbook for deploying on DigitalOcean, configuring space, k8s cluster, mongodb, domain / subdomain, signing subdomain, container registry, and cors
- Generates helm chat in ./deploys/ directory for future use with helm directly
- Initial support for deletion of created resources as well.
- add documentation on how to use playbook
default helm values: update to latest authsign, set default timeout to 120 seconds
2022-11-15 13:44:24 -08:00
..
deploys Digital ocean setup (#314) 2022-11-15 13:44:24 -08:00
group_vars/do Digital ocean setup (#314) 2022-11-15 13:44:24 -08:00
inventory Deployment: Add Ansible setup to deploy with microk8s (#296) 2022-08-19 12:49:21 -07:00
playbooks Digital ocean setup (#314) 2022-11-15 13:44:24 -08:00
roles/microk8s Deployment: Add Ansible setup to deploy with microk8s (#296) 2022-08-19 12:49:21 -07:00
.editorconfig Deployment: Add Ansible setup to deploy with microk8s (#296) 2022-08-19 12:49:21 -07:00
.tool-versions Deployment: Add Ansible setup to deploy with microk8s (#296) 2022-08-19 12:49:21 -07:00
Pipfile Digital ocean setup (#314) 2022-11-15 13:44:24 -08:00
Pipfile.lock Deployment: Add Ansible setup to deploy with microk8s (#296) 2022-08-19 12:49:21 -07:00
README.md Digital ocean setup (#314) 2022-11-15 13:44:24 -08:00

Playbooks to install browsertrix

DigitalOcean

To install browsertrix on DigitalOcean you will need to the following:

Digital Ocean Variables

See Known Issues below.

The first running of the playbook will place variables under your tmp directory in the following format YYYY-MM-DD@:HH:MMd_ocean*. Content of these files will need to be added to the group_vars/do/private.yml or else run as an -e extra value as shown below

-e btrix_db_url: (contents of /tmp/YYYY-MM-DD@:HH:MMd_ocean_btrix_db_url.txt`
-e lb_uuid: (contents of /tmp/YYYY-MM-DD@:HH:MMd_ocean_lb_uuid.txt`
-e loadbalancer_ip: (contents of /tmp/YYYY-MM-DD@:HH:MMd_ocean_loadbalancer_ip.txt`
-e domain_name: <your registered domain

In addition change the name (it will default to demo otherwise) and the region DigitalOcean preferred region (it will default to sfo3).

Example Playbooks

The playbook will install the Kubernetes package manager and the DigitalOcean Controller both are useful in managing your installation.

  • Run the playbook two times.
ansible-playbook -v playbooks/do_setup.yml
ansible-playbook -v playbooks/do_setup.yml -t helm_upgrade -e btrix_db_url= -e lb_uuid= -e loadbalancer_ip=

Every subsequent time one needs to run helm updates the -t helm_upgrade can be passed to the playbook like so:

ansible-playbook -v playbooks/do_setup.yml -t helm_upgrade

Known Issues:

The doctl tool is the only one that allows us to create a mongodb password. We continue to investigate why this cannot use ansible's set_fact in the playbook. The Kubernetes task creates a loadbalancer which will not be ready by the time the playbook completes the first time. So a second or sometimes 3rd run will be needed.