Использование переменных
В Terraform вы можете хранить информацию, необходимую для создания инфраструктуры, в переменных. Значения переменных можно указывать в отдельных файлах и затем ссылаться на эти файлы в описаниях ресурсов.
Благодаря переменным вы можете:
- настраивать ресурсы без изменения кода;
- настраивать разные окружения с индивидуальными параметрами (например, одни параметры для тестовой среды, другие — для продуктивной);
- безопасно хранить секреты.
Объявление переменных
Переменные в Terraform можно объявлять:
- в файле
main.tfв блокеvariables(см. пример для быстрого старта) — такой способ подходит для небольших тестовых проектов; - в отдельном файле с переменными — предпочтительный способ для крупных проектов.
При объявлении переменной указываются:
- имя;
- тип;
- краткое описание;
- (опционально) значение по умолчанию.
Пример объявления переменных
hcl
variable "vm_name" {
type = string
description = "Virtual machine name"
}
variable "network_name" {
type = string
description = "Network name"
}
variable "subnet_name" {
type = string
description = "Subnet name"
}
variable "allowed_ports" {
type = list(number)
description = "List of allowed ports"
default = [80, 443, 22]
}Присвоение значений переменным
Синтаксис при обращении к переменным
В описании ресурсов для обращения к переменным используйте синтаксис var.<имя переменной>, например:
hcl
resource "mws_vpc_network" "network" {
network = var.network_name
}
resource "mws_vpc_subnet" "subnet" {
subnet = var.subnet_name
network = mws_vpc_network.network.network
cidr = "192.168.0.0/16"
}
resource "mws_vpc_address" "vm_primary_network_interface_address" {
network = mws_vpc_network.network.network
subnet = mws_vpc_subnet.subnet.metadata.id
address = "${var.vm_name}-primary-network-interface-address"
}