Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
| info:cursos:udemy:terraform-azure:variables-interpolation-networking [29/03/2020 10:23] – creat mate | info:cursos:udemy:terraform-azure:variables-interpolation-networking [30/03/2020 10:26] (actual) – [azure subnet] mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| = Terraform, variables, interpolation and networking | = Terraform, variables, interpolation and networking | ||
| + | == variables | ||
| + | * tipos nativos: strings, maps (key=value), | ||
| + | * boolean no es nativo | ||
| + | * localización: | ||
| + | * en el cuerpo de script | ||
| + | * por línea de comando o entono | ||
| + | * en un fichero adicional de variables | ||
| + | * más información: | ||
| + | * <code properties> | ||
| + | default = "valor por defecto" | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | type = map | ||
| + | default = { | ||
| + | location1 = " | ||
| + | location2 = " | ||
| + | } | ||
| + | }</ | ||
| + | * testeando variables y su uso:< | ||
| + | variable " | ||
| + | default = " | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | type = " | ||
| + | default = { | ||
| + | location1 = " | ||
| + | location2 = " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | type = " | ||
| + | default = [" | ||
| + | } | ||
| + | |||
| + | variable " | ||
| + | type = " | ||
| + | default = true | ||
| + | } | ||
| + | </ | ||
| + | * '' | ||
| + | * var.server_name | ||
| + | * var.locations[" | ||
| + | * var.locations.location1 | ||
| + | * var.subnets[0] | ||
| + | * var.live | ||
| + | |||
| + | == credentials | ||
| + | * uso variables [de entorno] para almacenar credenciales | ||
| + | * **TF_VAR_< | ||
| + | |||
| + | == interpolation | ||
| + | * variables | ||
| + | * '' | ||
| + | * resources | ||
| + | * ''< | ||
| + | * data: recoger un dato del estado | ||
| + | * '' | ||
| + | * <code properties> | ||
| + | | ||
| + | } | ||
| + | |||
| + | #suponiendo que está en el entorno | ||
| + | provider " | ||
| + | version | ||
| + | client_id | ||
| + | client_secret | ||
| + | tenant_id | ||
| + | subscription_id = var.subscription_id | ||
| + | features {} | ||
| + | }</ | ||
| + | |||
| + | == azure locations | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | == azure resource groups | ||
| + | * agrupación lógica de recursos bajo tu criterio | ||
| + | * cada **resource* ha de ir en **resource group** | ||
| + | * <code properies; terraform.tfvars> | ||
| + | web_server_location = " | ||
| + | web_server_rg = " | ||
| + | </ | ||
| + | <code properties; main.tf> | ||
| + | variable web_server_location {} | ||
| + | variable web_server_rg {} | ||
| + | |||
| + | resource " | ||
| + | name = var.web_server_rg | ||
| + | location = var.web_server_location | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | == azure VNET | ||
| + | * logical isolates network | ||
| + | * espacio IP | ||
| + | * creació de subnets | ||
| + | * conexión con otras VNET, VPN o Endpoints | ||
| + | * NSG = Network Security Groups (firewall básico) | ||
| + | * <code properties> | ||
| + | resource_prefix = " | ||
| + | web_server_address_space = " | ||
| + | </ | ||
| + | <code properties> | ||
| + | variable " | ||
| + | variable " | ||
| + | |||
| + | resource " | ||
| + | name = " | ||
| + | location = var.web_server_location | ||
| + | resource_group_name = azurerm_resource_group.web_server_rg.name | ||
| + | address_space = [var.web_server_address_space] | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | == dependencies | ||
| + | * decirle a Terraform en que orden se deben crear los recursos | ||
| + | * al crear elementos que dependen (o no) de otros, se pueden dar los siguientes casos: | ||
| + | * que no haya dependencia | ||
| + | * dependencia indirecta: Terraform la asume o las dedice de las variables | ||
| + | * dependencia directa (o explícita): | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | == azure subnet | ||
| + | * subnetwork en nuestra VNET | ||
| + | * address space | ||
| + | * segmentación | ||
| + | * NSG = Network Security Groups | ||
| + | * <code properties; terraform.tfvars> | ||
| + | web_server_address_prefix = " | ||
| + | </ | ||
| + | <code properties; subnet.tf> | ||
| + | variable web_server_address_prefix {} | ||
| + | |||
| + | resource " | ||
| + | name = " | ||
| + | resource_group_name = azurerm_resource_group.web_server_rg.name | ||
| + | virtual_network_name = azurerm_virtual_network.web_server_vnet.name | ||
| + | address_prefix = var.web_server_address_prefix | ||
| + | }</ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | == azure Network Interface | ||
| + | * equivalencia con el mundo real | ||
| + | * atachar a Subnets/ | ||
| + | * IP públicas o privadas | ||
| + | * Estáticas o dinámicas | ||
| + | * DNS Settings | ||
| + | * NSG | ||
| + | * <code properties; terraform.tfvars> | ||
| + | <code properties; nic.tf> | ||
| + | variable web_server_name {} | ||
| + | resource " | ||
| + | name = " | ||
| + | location = var.web_server_location | ||
| + | resource_group_name = azurerm_resource_group.web_server_rg.name | ||
| + | | ||
| + | ip_configuration { | ||
| + | name = " | ||
| + | subnet_id = azurerm_subnet.web_server_subnet.id | ||
| + | private_ip_address_allocation = " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||