Skip to content

Installation

Ansible runs from your own machine (the control machine) and configures the target server over SSH — it is not run on the server itself.

Prerequisites

On your control machine: - Ansible 2.16+

On the target server: - Docker and Docker Compose - Kubernetes (for Loculus), kubectl configured - Linux (Ubuntu 20.04+, Debian 11+) - A deploy user with SSH access and passwordless sudo (or sudo via --ask-become-pass) - Your control machine's SSH key in that user's ~/.ssh/authorized_keys

Verify SSH access before proceeding:

ssh <deploy_user>@<target_host>

Setup

1. Clone the Repository

git clone https://github.com/cbg-ethz/WisePulse.git
cd WisePulse

2. Configure Inventory

Edit inventory.ini to point at your target host and deploy user:

[wisepulse_server]
<target_host> ansible_user=<deploy_user>

3. Install Ansible Collections

ansible-galaxy collection install -r requirements.yml

4. Set Up the Vault Password

group_vars/loculus/vault.yml and group_vars/monitoring/vault.yml hold secrets encrypted with Ansible Vault. Decrypting them (and running any playbook) requires a .vault_pass file in the repo root containing the vault password.

This file is not checked into git. Ask a project maintainer for the password, then create it:

echo '<vault password>' > .vault_pass
chmod 600 .vault_pass

5. Configure Variables

Edit the group variables for your environment:

# srSILO configuration
vim group_vars/srsilo/main.yml

# Loculus configuration
vim group_vars/loculus/main.yml
vim group_vars/loculus/vault.yml  # Encrypted secrets

# Monitoring configuration
vim group_vars/monitoring/main.yml

6. Run Setup Playbook

# One-time setup (creates user, directories, builds tools)
ansible-playbook playbooks/srsilo/setup.yml -i inventory.ini --become --ask-become-pass

Next Steps