Доступ к файлу .tfstate в файле .tf - terraform - PullRequest
0 голосов
/ 15 декабря 2018

Я хочу создать новый ресурс WebApp в существующей группе ресурсов. этот вопрос и этот пост объясняет, как мы можем импортировать существующий ресурс (вместо того, чтобы каждый раз создавать новый)

Мне удалось импортировать мою существующую группу ресурсов, используя нижекоманда

terraform import azurerm_resource_group.rg-myResourceGroup /subscriptions/00000-my-subscription-id-0000000/resourceGroups/rg-myResourceGroup

После выполнения этой команды я вижу, что создается новый файл с именем 'terraform.tfstate' Ниже приводится содержимое файла.

{
    "version": 3,
    "terraform_version": "0.11.11",
    "serial": 1,
    "lineage": "-----------------------------",
    "modules": [
        {
            "path": [
                "root"
            ],
            "outputs": {},
            "resources": {
                "azurerm_resource_group.rg-ResourceGroupName": {
                    "type": "azurerm_resource_group",
                    "depends_on": [],
                    "primary": {
                        "id": "/subscriptions/subscription-id-00000000000/resourceGroups/rg-hemant",
                        "attributes": {
                            "id": "/subscriptions/subscription-id-00000000000/resourceGroups/rg-hemant",
                            "location": "australiaeast",
                            "name": "rg-ResourceGroupName",
                            "tags.%": "0"
                        },
                        "meta": {},
                        "tainted": false
                    },
                    "deposed": [],
                    "provider": "provider.azurerm"
                }
            },
            "depends_on": []
        }
    ]
}

Теперь мой вопрос: как я могу получить доступ к /укажите / включите terraform.tfstate в моем main.tf

resource "azurerm_resource_group" "rg-hemant" {
  #name = it should be rg-ResourceGroupName 
  #location = it should be australiaeast
}

ОБНОВЛЕНИЕ 1

  1. Предположим, что в моей подписке 'mysubscription1' естьгруппа ресурсов 'rg-exising'
  2. В этой группе ресурсов уже мало ресурсов, например webapp1, storageaccount1
  3. Теперь я хочу написать скрипт terraform, который добавит новый ресурс (например, newWebapp1) к существующей группе ресурсов 'rg-существующие'
  4. , поэтому после terraform apply операция rg-exising должна иметь ресурсы ниже

    • webapp1
    • storageaccount1
    • newWebapp1 (добавлено новым скриптом terraform apply)

4) Обратите внимание, что я не хочу, чтобы terraform создавал (в случае apply) ИЛИ удалял (в случае destroy) мои существующие ресурсы, которые принадлежат rg-exising

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Выкопал больше в постах и ​​нашел решение здесь .

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

terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME

Примечание: я узнал, что в этом случае нет необходимости использовать terraform import команду

0 голосов
/ 15 декабря 2018

на самом деле вы этого не делаете, вам просто нужно сопоставить ваш ресурс с состоянием в tfstate, поэтому просто выполните:

resource "azurerm_resource_group" "rg-hemant" {
  name = 'rg-ResourceGroupName'
  location = 'australiaeast'
}

и tf должен распознать этот ресурс как тот, который есть в файле состояния

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...