- Reconnaissance : le serveur héberge déjà 6 autres projets derrière un Caddy partagé (80/443) ; tripoli-edge sera un service interne (décision prise avec l'utilisateur), pas un second frontal. - WireGuard : canal admin Mac <-> serveur (10.100.0.0/24, port 58212/udp après avoir découvert que 51820 était filtré par le pare-feu Hetzner Cloud, distinct de ufw). - Ansible : rôle base (confirme fail2ban/unattended-upgrades/ufw déjà en place, sans toucher aux règles des autres projets) + rôle wireguard (clé privée générée sur la cible, jamais stockée dans ce dépôt). - OpenTofu : serveur Hetzner référencé en data source lecture seule (jamais recréé/détruit - serveur partagé et déjà en prod) ; DNS tripoli.cloud géré via le provider OVH. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# OpenTofu — serveur & DNS en code
|
|
|
|
## Ce que ça gère
|
|
|
|
- `data "hcloud_server"` : référence **en lecture seule** le serveur
|
|
Hetzner existant (`tripoli-cloud`). Volontairement pas une `resource` :
|
|
ce serveur héberge six autres projets en production, et le gérer comme
|
|
une ressource Tofu ferait courir le risque qu'un `apply` mal aligné le
|
|
recrée ou le détruise. Cette IaC documente le serveur, elle ne le pilote
|
|
pas.
|
|
- `ovh_domain_zone_record` : les enregistrements A de `tripoli.cloud` et
|
|
`www.tripoli.cloud`, pointés sur l'IP du serveur ci-dessus. Seule la zone
|
|
`tripoli.cloud` est touchée — les autres domaines du même compte OVH
|
|
(lecheminvert.tech, etc.) ne sont pas dans le champ de ce projet.
|
|
|
|
## Identifiants
|
|
|
|
Aucun token dans ce dépôt ni dans un `.tfvars`. Les providers lisent
|
|
directement l'environnement :
|
|
|
|
```bash
|
|
export HCLOUD_TOKEN=...
|
|
export OVH_ENDPOINT=ovh-eu
|
|
export OVH_APPLICATION_KEY=...
|
|
export OVH_APPLICATION_SECRET=...
|
|
export OVH_CONSUMER_KEY=...
|
|
```
|
|
|
|
## Lancer
|
|
|
|
```bash
|
|
tofu init
|
|
tofu plan
|
|
tofu apply
|
|
```
|
|
|
|
`tofu init` et `tofu validate` ont déjà été exécutés dans cette session
|
|
(sans toucher à l'infra réelle) pour vérifier la syntaxe. `plan`/`apply`
|
|
nécessitent les identifiants ci-dessus, qui n'ont pas été demandés ni
|
|
extraits automatiquement.
|