56 lines
1.7 KiB
Markdown
56 lines
1.7 KiB
Markdown
# Ouranos
|
||
|
||
**Red Panda Approved™ Infrastructure as Code**
|
||
|
||
Ouranos is an infrastructure-as-code project that provisions and manages the **Ouranos Lab** — a development sandbox at [ouranos.helu.ca](https://ouranos.helu.ca). All infrastructure is tracked in Git for fully reproducible deployments.
|
||
|
||
| Component | Purpose |
|
||
|-----------|---------|
|
||
| **Terraform** | Provisions 10 specialised Incus containers (LXC) with networking, security policies, and resource dependencies |
|
||
| **Ansible** | Configures Docker, databases, observability stack, and application runtimes across all containers |
|
||
|
||
Containers are named after moons of Uranus and resolved via the `.incus` DNS domain.
|
||
|
||
## Quick Start
|
||
|
||
ℹ️ The Ansible virtual environment is expected at `~/env/ouranos/bin/activate`.
|
||
|
||
```bash
|
||
# Provision containers
|
||
cd terraform
|
||
terraform init && terraform apply
|
||
|
||
# Configure services
|
||
cd ../ansible
|
||
source ~/env/ouranos/bin/activate
|
||
ansible-playbook site.yml
|
||
```
|
||
|
||
### Common Operations
|
||
|
||
```bash
|
||
# Start all containers
|
||
ansible-playbook sandbox_up.yml
|
||
|
||
# Stop all containers
|
||
ansible-playbook sandbox_down.yml
|
||
|
||
# Update all hosts
|
||
ansible-playbook apt_update.yml
|
||
|
||
# Deploy a specific service
|
||
ansible-playbook <service>/deploy.yml
|
||
```
|
||
|
||
## Documentation
|
||
|
||
| Document | Description |
|
||
|----------|-------------|
|
||
| [docs/ouranos.md](docs/ouranos.md) | Complete lab reference — hosts, services, routing, workflows |
|
||
| [docs/terraform.md](docs/terraform.md) | Terraform practices and patterns |
|
||
| [docs/ansible.md](docs/ansible.md) | Ansible project structure and conventions |
|
||
| [docs/red_panda_standards.md](docs/red_panda_standards.md) | Red Panda Approval™ quality standards |
|
||
|
||
## 🐾 Red Panda Approval™
|
||
|
||
This project adheres to [Red Panda Approval™ standards](docs/red_panda_standards.md). |