WedX - журнал о программировании и компьютерных науках

Как обращаться к импортированным ресурсам терраформ

Мне нужна ваша помощь. Мы создали группу ресурсов (rg_networking) и виртуальную сеть (vnet_preprod) и 5 ​​подсетей в ней (subnet_ad), subnet_app, subnet_ctl и т. Д.

Мой импорт ресурсов работает отлично, однако я не знаю, как использовать / ссылаться на импортированные ресурсы?

terraform import --var-file=aos-1.tfvars azurerm_virtual_network.vnet_preprod /subscriptions/00000000000000000/resourceGroups/rg_networking/providers/Microsoft.Network/virtualNetworks/vnet_preprod
azurerm_virtual_network.vnet_preprod: Importing from ID "/subscriptions/00000000000000000/resourceGroups/rg_networking/providers/Microsoft.Network/virtualNetworks/vnet_preprod"...
azurerm_virtual_network.vnet_preprod: Import complete!
  Imported azurerm_virtual_network (ID: /subscriptions/00000000000000000/resourceGroups/rg_networking/providers/Microsoft.Network/virtualNetworks/vnet_preprod)
azurerm_virtual_network.vnet_preprod: Refreshing state... (ID: /subscriptions/00000000000000000-...rk/virtualNetworks/vnet_preprod)

Import successful!

Ресурсы, которые были импортированы, показаны выше. Эти ресурсы теперь находятся в вашем состоянии Terraform и отныне будут управляться Terraform.

В моем файле windows-build-tf

resource "azurerm_virtual_network" "vnet_preprod" {
  name                = ""
  address_space       = ""
  location            = ""
  resource_group_name = ""
}

Мне пришлось вставить приведенный выше фрагмент, иначе импорт не сработал бы.

Моя предыдущая рабочая конфигурация, в которой Terraform создает все и не использует какие-либо импортированные ресурсы, приведена ниже:

variables.tfvars

address_space = [ "10.97.0.0/16" ]
virtual_network_subnet_ad = "10.97.1.0/24"
virtual_network_subnet_ad_name="groups-preprod_subnet_ad"
virtual_network_nic_ad="groups-preprod_nic_ad"

build-windows.tf

resource "azurerm_virtual_network" "tf-virtual-network" {
  name                = "${var.virtual_network_name}"
  address_space       = "${var.address_space}"
  location            = "${var.Location}"
  resource_group_name = "${var.Resource_group_name}"
}

resource "azurerm_subnet" "tf-virtual-network-subnet-ad" {
  name                 = "${var.virtual_network_subnet_ad_name}"
  resource_group_name  = "${var.Resource_group_name}"
  virtual_network_name = "${azurerm_virtual_network.tf-virtual-network.name}"
  address_prefix       = "${var.virtual_network_subnet_ad}"
}

resource "azurerm_network_interface" "tf-virtual-network-nic-ad" {
  name                = "${var.virtual_network_nic_ad}"
  location            = "${var.Location}"
  resource_group_name = "${var.Resource_group_name}"

  ip_configuration {
    name                          = "testconfiguration1"
    subnet_id                     = "${azurerm_subnet.tf-virtual-network-subnet-ad.id}"
    private_ip_address_allocation = "dynamic"
  }
}
resource "azurerm_virtual_machine" "tf-virtual-machine-name" {
  name                  = "${var.virtual_machine_name}"
  location              = "${var.Location}"
  resource_group_name   = "${var.Resource_group_name}"
  network_interface_ids = ["${azurerm_network_interface.tf-virtual-network-nic-ad.id}"]
  vm_size               = "Standard_DS3_v2"
}

Мой вопрос в том, как ссылаться на импортированный ресурс, я предпочитаю, чтобы они были параметрическими, но если это невозможно, то жестко закодированные значения будут способом двигаться вперед? мне нужно создать свою виртуальную машину в той же группе ресурсов?

Я вижу, как они импортированы в файл состояния, любезное руководство, так как я новичок в Azure и Terraform.

Огромное спасибо!


Ответы:


1

Вы можете импортировать и использовать ресурсы следующим образом, похоже, вы правильно импортировали

Импортируйте свой ресурс, используйте имя поставщика / ресурса, например «azurerm_virtual_network.web_server_vnet». Затем в terraform переопределите это, используя то же имя и настройки, которые в настоящее время используются в Azure. Затем вы можете использовать это как созданный вами ресурс. Может быть, вы могли бы вместо этого определить это как ресурс данных? Вам не нужно добавлять все атрибуты, и он не будет уничтожен, если вы выполните terraform destroy.

Импорт

https://resources.azure.com/ - удобно для получения идентификатора ресурса.

terraform import azurerm_virtual_network.web_server_vnet /subscriptions/xxxxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxx/resourceGroups/tf-web-rg/providers/Microsoft.Network/virtualNetworks/web-server-vnet

В Terraform

resource "azurerm_virtual_network" "web_server_vnet" {
  name                = "vnet"
  location            = "location"
  resource_group_name = "resourceGroup"
  address_space       = ["1.1.1.0/24"]
}

data "azurerm_resource_group" "web_server_rg" {
  name = "existing RG Name"
}
18.10.2018
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]