- 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
49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
### Playbooks to install browsertrix
|
|
|
|
#### DigitalOcean
|
|
|
|
To install browsertrix on [DigitalOcean](playbooks/do_setup.yml) you will need to the following:
|
|
|
|
* Install [ansible](https://www.ansible.com)
|
|
* Set up a DigitalOcean API token and save it in your environment as `DO_API_TOKEN`
|
|
* Set up a Spaces ACCESS and SECRET KEY and save them in your environment as `DO_AWS_ACCESS_KEY` and `DO_AWS_SECRET_KEY`
|
|
* make a copy of [group_vars/do/private.yml.example](group_vars/do/private.yml.example) to [group_vars/do/private.yml](group_vars/do/private.yml)
|
|
|
|
|
|
##### 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](group_vars/do/private.yml) or else run as an `-e` extra value as shown below
|
|
|
|
```yaml
|
|
-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](https://helm.sh/) and the [DigitalOcean Controller](https://docs.digitalocean.com/reference/doctl/) both are useful in managing your installation.
|
|
|
|
* Run the playbook two times.
|
|
|
|
```zsh
|
|
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:
|
|
|
|
```zsh
|
|
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](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/set_fact_module.html) 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.
|