π Guide Visuel - Configuration Terraform Cloud UI
π― Vue d'ensemble
Tout se fait via l'interface web, aucun terminal nΓ©cessaire !
π Γtape 1 : CrΓ©er le Workspace
Dans Terraform Cloud (app.terraform.io) :
βββββββββββββββββββββββββββββββββββββββ
β π Organizations β
β βββ Your Organization β
β β βββ Workspaces β
β β βββ [+ New Workspace] β
βββββββββββββββββββββββββββββββββββββββ
Choisir :
- β
CLI-driven workflow
- Nom : docker-swarm-hetzner
- Description : Docker Swarm cluster on Hetzner Cloud
π Γtape 2 : Variables d'Environnement
Navigation :
Workspace β Settings β Variables β Environment Variables
Cliquez [+ Add variable] :
ββββββββββββββββββββββββββββββββββββββββββββ
β Key: HCLOUD_TOKEN β
β Value: [votre-token-hetzner] β
β Description: Hetzner Cloud API Token β
β βοΈ Sensitive β
β [Save variable] β
ββββββββββββββββββββββββββββββββββββββββββββ
π Γtape 3 : Variables Terraform
Dans la mΓͺme page, section "Terraform Variables" :
Variable 1 : Organization
ββββββββββββββββββββββββββββββββββββββββββββ
β Key: terraform_cloud_organizationβ
β Value: votre-org-name β
β Description: Your TF Cloud organization β
β β Sensitive β
β [Save variable] β
ββββββββββββββββββββββββββββββββββββββββββββ
Variable 2 : Workspace
ββββββββββββββββββββββββββββββββββββββββββββ
β Key: terraform_cloud_workspace β
β Value: docker-swarm-hetzner β
β Description: Workspace name β
β β Sensitive β
β [Save variable] β
ββββββββββββββββββββββββββββββββββββββββββββ
Variable 3 : Token Hetzner (Terraform)
ββββββββββββββββββββββββββββββββββββββββββββ
β Key: hcloud_token β
β Value: [votre-token-hetzner] β
β Description: Hetzner API Token β
β βοΈ Sensitive β
β [Save variable] β
ββββββββββββββββββββββββββββββββββββββββββββ
π€ Γtape 4 : Upload Configuration
Navigation :
Workspace β Overview β [Upload configuration]
FenΓͺtre d'upload :
ββββββββββββββββββββββββββββββββββββββββββ
β π Select files to upload: β
β β
β βοΈ main.tf β
β βοΈ variables.tf β
β βοΈ outputs.tf β
β βοΈ resources.tf β
β βοΈ terraform.auto.tfvars β
β βοΈ scripts/ β
β βββ βοΈ cloud-init-manager.yaml β
β βββ βοΈ cloud-init-worker.yaml β
β β
β [Upload configuration] β
ββββββββββββββββββββββββββββββββββββββββββ
π‘ Astuce : SΓ©lectionnez tous les fichiers d'un coup avec Ctrl+A
π Γtape 5 : DΓ©ploiement
Dans Overview, cliquez :
ββββββββββββββββββββββββββββββββββββββ
β [Actions βΌ] β Start new run β
ββββββββββββββββββββββββββββββββββββββ
Γcran de Plan :
βββββββββββββββββββββββββββββββββββββββββββββββ
β Plan: 35 to add, 0 to change, 0 to destroyβ
β β
β Resources to create: β
β + hcloud_server.manager[0] β
β + hcloud_server.manager[1] β
β + hcloud_server.manager[2] β
β + hcloud_server.worker[0] β
β + hcloud_server.worker[1] β
β + hcloud_server.worker[2] β
β + hcloud_load_balancer.swarm β
β + hcloud_network.swarm β
β + hcloud_firewall.swarm β
β ... β
β β
β Estimated monthly cost: 45.96 EUR β
β β
β [Confirm & Apply] β
βββββββββββββββββββββββββββββββββββββββββββββββ
π Γtape 6 : Outputs
Après déploiement (5 min), voir Outputs :
βββββββββββββββββββββββββββββββββββββββββββββββ
β Outputs: β
β β
β load_balancer_ip = "95.217.xxx.xxx" β
β manager_ips = ["88.99.xxx.xxx", ...] β
β portainer_url = "http://88.99.xxx:9000" β
β grafana_url = "http://88.99.xxx:3000" β
β ssh_manager_command = "ssh -i keys/..." β
β estimated_monthly_cost = "45.96 EUR" β
βββββββββββββββββββββββββββββββββββββββββββββββ
βοΈ Variables Optionnelles (Personnalisation)
Pour modifier la configuration, ajoutez ces variables Terraform :
| Variable | Valeur par dΓ©faut | Options |
|---|---|---|
manager_count |
3 | 1, 3, 5 (impair pour consensus) |
worker_count |
3 | 1-100 |
location |
nbg1 | nbg1, fsn1, hel1, ash, hil |
manager_server_type |
cx21 | cx11, cx21, cx31, cx41 |
worker_server_type |
cx11 | cx11, cx21, cx31, cx41 |
admin_ips |
["0.0.0.0/0"] | ["votre.ip/32"] |
Exemple : Cluster plus grand
manager_count = 5
worker_count = 10
worker_server_type = "cx21"
β CoΓ»t : ~95β¬/mois
Exemple : Cluster minimal (dev)
manager_count = 1
worker_count = 2
manager_server_type = "cx11"
β CoΓ»t : ~20β¬/mois
π Mise Γ jour du Cluster
- Modifier les variables dans Settings β Variables
- Actions β Start new run
- VΓ©rifier le plan
- Confirm & Apply
ποΈ Destruction
β οΈ ATTENTION : Supprime tout !
Settings β Destruction and Deletion β Queue destroy plan
Confirmation requise : tapez le nom du workspace
π‘ Tips & Tricks
π SΓ©curitΓ©
- Toujours marquer
hcloud_tokencomme Sensitive - Remplacer
admin_ips = ["0.0.0.0/0"]par vos IPs rΓ©elles
π° Γconomies
- Utilisez
cx11pour les tests (3.29β¬/mois) - DΓ©sactivez
create_floating_ipssi pas nΓ©cessaire (-3.57β¬) - RΓ©duisez
volume_sizesi peu de donnΓ©es
π Performance
cx21minimum pour les managers en productioncpxseries pour CPU partagΓ© (moins cher)ccxseries pour CPU dΓ©diΓ© (performance max)
π Monitoring
- Grafana : admin/admin (changez le mot de passe !)
- Prometheus : MΓ©triques sur :9090
- Portainer : Interface Docker sur :9000
β FAQ
Q: OΓΉ trouver mon token Hetzner ?
console.hetzner.cloud β Security β API Tokens
Q: Comment voir les logs ?
Workspace β Runs β Cliquez sur un run β View log
Q: Comment changer la rΓ©gion ?
Variable
location: nbg1, fsn1, hel1, ash, hil
Q: Le dΓ©ploiement Γ©choue ?
VΓ©rifiez : Token valide, Quotas Hetzner, Variables correctes
π FΓ©licitations !
Votre cluster Docker Swarm est opΓ©rationnel sur Hetzner Cloud !
Prochaines Γ©tapes : 1. AccΓ©dez Γ Portainer pour gΓ©rer vos containers 2. Consultez Grafana pour le monitoring 3. DΓ©ployez vos applications !
Support : - π§ Hetzner : support@hetzner.com - π¬ Community : reddit.com/r/hetzner - π Docs : docs.hetzner.cloud