Skip to content

πŸ“– 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

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

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

  1. Modifier les variables dans Settings β†’ Variables
  2. Actions β†’ Start new run
  3. VΓ©rifier le plan
  4. 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_token comme Sensitive
  • Remplacer admin_ips = ["0.0.0.0/0"] par vos IPs rΓ©elles

πŸ’° Γ‰conomies

  • Utilisez cx11 pour les tests (3.29€/mois)
  • DΓ©sactivez create_floating_ips si pas nΓ©cessaire (-3.57€)
  • RΓ©duisez volume_size si peu de donnΓ©es

πŸš€ Performance

  • cx21 minimum pour les managers en production
  • cpx series pour CPU partagΓ© (moins cher)
  • ccx series 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


Commentaires