Aquesta és una revisió antiga del document
Terraform, getting started
v11 VS v12
- terraform.tfvars
- no necesidad entrecomillar las variables
- *.tf
- no interpolation para el uso de variables
- si aún en expresiones dentro de strings
- en el caso de azure, para usar versión 12, la versión del provider ha de ser >=1.27
- los bloques dentro de un resource han/pueden usar = (línea 25 de la sintaxis para v12)
installs
- visual studio code + plugin terraform
- git
- azure cli
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash:sudo apt-get update sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg curl -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null AZ_REPO=$(lsb_release -cs) echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | sudo tee /etc/apt/sources.list.d/azure-cli.list sudo apt-get update sudo apt-get install azure-cli
azure SPN
- Tenant: organización. Instancia dedicada de tu AD
- Azure AD: AD para la gestión de permisos en el cloud de Azure
- SPN = Service Principal Name. Cuenta de aplicación para autenticación y autorización para servicios automatizados
- Subscriptions:
- ligadas a un AD (nuestro AD), puede haber varias de ellas
- se puede autorizar a un SPN a una o varias subscripciones
- SPK
- portal → Azure Active Directory → App registrations → ADD
- valores por defecto
- guardar los siguientes valores:
- cliend ID1): ••••••••••
- client_secret: ••••••••••
- en Certificates & secrets → Add a new client secret
- tenant ID: ••••••••••
- Portal → Subscriptions → Evaluación Gratuita (Pay-As-You-Go)
- subscription ID: ••••••••••
- Autorizar a nuestro SPN terraform
- portal → subscriptions → Pay-As-You-Go → IAM → Add a role assignment
- Role = contributor, Assign access to = Azure AD user, group o service principal, terraform
Providers
- En terraform, los providers es la manera de hablar con los diferentes servicios (en cloud)
- el lenguaje de terraform está pensado para ser inteligible para los humanos
- creamos el siguiente script terraform:
1)
2s

