Files
NaliiaDevOPs/README.md

92 lines
2.3 KiB
Markdown

# 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
```bash
# 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
1. Terraform instalado (>= 0.13)
2. Cuenta en [Hetzner Cloud](https://console.hetzner.cloud)
3. Token API generado en Hetzner Robot > Access > API Tokens
4. Clave SSH pública generada (`~/.ssh/id_rsa.pub`)
## Configuración Inicial
1. Copiar el archivo de ejemplo de configuración:
```bash
cp config.auto.tfvars.example terraform/config.auto.tfvars
```
2. Editar `terraform/config.auto.tfvars` con los valores deseados
3. Inicializar Terraform:
```bash
cd terraform
terraform init
```
4. Aplicar la configuración:
```bash
terraform apply
```