galene-cloud/README.md
Julien Riou 02d3ee924d
feat: Use the jriou.general Ansible collection
Signed-off-by: Julien Riou <julien@riou.xyz>
2026-03-23 10:11:03 +01:00

124 lines
2.5 KiB
Markdown

# galene-cloud
Run galene in the cloud using OpenTofu and Ansible.
# Requirements
* Ansible (`ansible`)
* OpenTofu (`tofu`)
* Public Cloud project on [OVHcloud](https://www.ovhcloud.com)
* Domain zone on [OVHcloud](https://www.ovhcloud.com)
# OpenTofu
## Configuration
### OpenStack provider
> tofu/clouds.yaml
The `clouds.yaml` file will automatically configure the openstack provider to
use your Public Cloud project.
Go to the [OVHcloud Manager](https://www.ovh.com/manager/), then "Public Cloud"
section, then "Horizon", then "API access". In the drop down on the right,
select "OpenStack clouds.yaml File".
You still need to provide the password. Two options:
```
read -s OS_PASSWORD
export OS_PASSWORD
```
Or write the password in the clouds.yaml file.
### OVH provider
> tofu/ovh.conf
Follow the [First Steps with the OVHcloud
APIs](https://help.ovhcloud.com/csm/en-gb-api-getting-started-ovhcloud-api?id=kb_article_view&sysparm_article=KB0042784)
guide, section "Advanced usage: pair OVHcloud APIs with an application", to
generate the `ovh.conf` file.
### Variables
* **domain**: Name of the domain zone
* **hostname**: Name of the server (default: "galene")
* **openstack_image**: Name of the OpenStack image (default: "Debian 12")
* **openstack_flavor**: Name of the OpenStack flavor (default: "d2-2")
Variables can be provided using files ending with `.tfvars` extension. See [the
documentation](https://opentofu.org/docs/language/values/variables/#variable-definitions-tfvars-files)
for more information.
## Usage
Change directory to "tofu":
```
cd tofu
```
### Start
```
tofu plan
tofu apply
```
Then follow the instructions for Ansible.
### Stop
```
tofu destroy
```
# Ansible
## Installation
```
cd ansible
ansible-galaxy collection install -r requirements.yml
```
## Configuration
File `group_vars/galene.yml`:
```yaml
certbot_domain: &domain galene.tld
certbot_email: contact@galene.tld
galene_domain: *domain
galene_groups:
group1:
users:
admin:
password: CHANGEME
permissions: op
user1:
password: CHANGEME
permissions: present
user2:
password: CHANGEME
permissions: present
```
## Usage
```
ansible-playbook site.yml
```
Do not forget to destroy the infrastructure when you are done with the video
conference.
# Aliases
```bash
alias galene-start='cd /path/to/galene-cloud/tofu && tofu apply && cd /path/to/galene-cloud/ansible && ansible-playbook site.yml'
alias galene-stop='cd /path/to/galene-cloud/tofu && tofu destroy'
```