Я новичок в HCL и Terraform, и у меня возникли проблемы с привязкой группы безопасности и пула внутренних адресов к сетевому интерфейсу. Я создаю 2 сетевых интерфейса в одном блоке сетевого интерфейса:
#Create network interface for 2 VMs
resource "azurerm_network_interface" "FrontNetworkInterface" {
count = 2
name = "niFront${count.index}"
location = azurerm_resource_group.PWSDevResourceGroup.location
resource_group_name = azurerm_resource_group.PWSDevResourceGroup.name
ip_configuration {
name = "ipconfFrontVM"
subnet_id = azurerm_subnet.PWSDevSubnet.id
private_ip_address_allocation = "dynamic"
}
}
Я пробовал связывать разными способами, которые приводили к различным ошибкам:
ПОПЫТКА 1:
#Connect security group to the network interface
resource "azurerm_network_interface_security_group_association" "PWSDevSecurityGroupAssoc" {
network_interface_id = azurerm_network_interface.FrontNetworkInterface.id
network_security_group_id = azurerm_network_security_group.PWSDevSecurityGroup.id
}
#Connect 2 backend ips to the load balancer
resource "azurerm_network_interface_backend_address_pool_association" "BackendIPAssoc" {
network_interface_id = azurerm_network_interface.FrontNetworkInterface.id
ip_configuration_name = "bipa"
backend_address_pool_id = azurerm_lb_backend_address_pool.BackendIpPool.id
}
ОШИБКИ:
Ошибка: отсутствует ключ экземпляра ресурса в строке 85 front.tf, в ресурсе azurerm_network_interface_security_group_association PWSDevSecurityGroupAssoc: 85: network_interface_id = azurerm_network_interface.FrontNetworkInterface.id Должен быть. Например, для корреляции с индексами ссылающегося ресурса используйте: azurerm_network_interface.FrontNetworkInterface [count.index]
Ошибка: отсутствует ключ экземпляра ресурса в строке 91 front.tf, в ресурсе azurerm_network_interface_backend_address_pool_association BackendIPAssoc: 91: network_interface_id = azurerm_network_interface.FrontNetworkInterface.id, поскольку для экземпляров azurerm_network_interface.FrontNetwork должны быть установлены атрибуты countNetwork, специфичные для azurerm_network_interface.FrontNetwork Например, для корреляции с индексами ссылающегося ресурса используйте: azurerm_network_interface.FrontNetworkInterface [count.index]
ATTEMPT 2/3/4 (Использование [count.index], [count.index] .id или [element (azurerm_network_interface.FrontNetworkInterface. *. Id, count.index)], как описано в предыдущей ошибке):
#Connect security group to the network interface
resource "azurerm_network_interface_security_group_association" "PWSDevSecurityGroupAssoc" {
network_interface_id = azurerm_network_interface.FrontNetworkInterface[count.index]
network_security_group_id = azurerm_network_security_group.PWSDevSecurityGroup.id
}
#Connect 2 backend ips to the load balancer
resource "azurerm_network_interface_backend_address_pool_association" "BackendIPAssoc" {
network_interface_id = azurerm_network_interface.FrontNetworkInterface[count.index]
ip_configuration_name = "bipa"
backend_address_pool_id = azurerm_lb_backend_address_pool.BackendIpPool.id
}
ОШИБКА (тот же результат для [count.index] .id и [element (azurerm_network_interface.FrontNetworkInterface. *. Id, count.index)]):
Ошибка: ссылка на счетчик в контексте без подсчета в строке 85 front.tf в ресурсе azurerm_network_interface_security_group_association PWSDevSecurityGroupAssoc: 85: network_interface_id = azurerm_network_interface.FrontNetworkInterface [count.index]. и только когда установлен аргумент count.
Ошибка: ссылка на счетчик в неподсчитываемом контексте front.tf, строка 91, в ресурсе azurerm_network_interface_backend_address_pool_association BackendIPAssoc: network_interface_id = azurerm_network_interface.FrontNetworkInterface [count.index] Объект счетчика может использоваться только в блоках, модуле ресурсов и данных. установлен аргумент count.
Кроме того, я получаю эту ошибку в своем блоке azurerm_virtual_machine:
строка 162 в ресурсе azurerm_virtual_machine FrontEndVirtualMachines: 162: admin_ssh_key {Блоки типа admin_ssh_key здесь не ожидаются.
Я слежу за тем, что показано здесь:
Как видите, предусмотрен блок admin_ssh_key. Я пробовал использовать версию 2.0, используемую в сценариях; однако я испытал тот же результат.
Спасибо за вашу помощь!! :)