Deploy Terraform - Naliia Web
Infraestructura como código para desplegar recursos en Hetzner Cloud.
Tecnología Utilizada
- Terraform: >= 0.13
- Provider: hcloud (Hetzner Cloud)
- Recursos: SSH Key, Server, Volume
Estructura del Proyecto
Deploy/
├── terraform/
│ ├── hcloud.tf # Definición de recursos
│ ├── variables.tf # Variables disponibles
│ ├── config.auto.tfvars # Configuración (contiene secrets)
│ ├── .terraform/ # Proveedores descargados
│ └── .terraform.lock.hcl # Lock de proveedores
├── config.auto.tfvars.example # Template de configuración
├── .gitignore
└── README.md
Variables a Actualizar
| Variable | Descripción | Valor por defecto |
|---|---|---|
hcloud_token |
Token API de Hetzner | (requerido) |
hcloud_ssh_key_name |
Nombre de la clave SSH | default-ssh-key |
hcloud_ssh_key_file_path |
Ruta a clave pública | ~/.ssh/id_rsa.pub |
hcloud_server_name |
Nombre del servidor | app |
hcloud_server_image |
Imagen del SO | ubuntu-24.04 |
hcloud_server_type |
Tipo de instancia | cx23 |
hcloud_volume_name |
Nombre del volumen | web_volume |
hcloud_volume_size |
Tamaño en GB | 10 |
Comandos Terraform
# Inicializar el directorio de trabajo
terraform init
# Mostrar el plan de cambios
terraform plan
# Aplicar los cambios definidos
terraform apply
# Mostrar el estado actual de los recursos
terraform show
# Destruir todos los recursos creados
terraform destroy
# Formatear los archivos de configuración
terraform fmt
# Validar la configuración
terraform validate
Requisitos Previos
- Terraform instalado (>= 0.13)
- Cuenta en Hetzner Cloud
- Token API generado en Hetzner Robot > Access > API Tokens
- Clave SSH pública generada (
~/.ssh/id_rsa.pub)
Configuración Inicial
- Copiar el archivo de ejemplo de configuración:
cp config.auto.tfvars.example terraform/config.auto.tfvars
-
Editar
terraform/config.auto.tfvarscon los valores deseados -
Inicializar Terraform:
cd terraform
terraform init
- Aplicar la configuración:
terraform apply
Description
Languages
HCL
100%