首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问.tfstate文件中的.tf文件- terraform

访问.tfstate文件中的.tf文件- terraform
EN

Stack Overflow用户
提问于 2018-12-15 09:53:00
回答 2查看 684关注 0票数 0

我希望在现有资源组中创建一个新的WebApp资源。这个问题这个职位解释了如何导入现有资源(而不是每次创建新资源)。

我能够使用下面的命令导入我现有的资源组

代码语言:javascript
复制
terraform import azurerm_resource_group.rg-myResourceGroup /subscriptions/00000-my-subscription-id-0000000/resourceGroups/rg-myResourceGroup

执行此命令后,我可以看到创建了名为'terraform.tfstate'的新文件,下面是该文件的内容。

代码语言:javascript
复制
{
    "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": []
        }
    ]
}

现在我的问题是如何在我的main.tf中访问/引用/包括main.tf

代码语言:javascript
复制
resource "azurerm_resource_group" "rg-hemant" {
  #name = it should be rg-ResourceGroupName 
  #location = it should be australiaeast
}

更新1

  1. 假设在我的订阅'mysubscription1‘中有一个资源组'rg-exising
  2. 这个资源组已经没有多少资源,例如webapp1storageaccount1
  3. 现在,我想编写一个terraform脚本,它将向现有资源组“rg-现有”中添加新的资源(例如newWebapp1 )。
  4. 因此,在terraform apply操作之后,rg-exising应该有以下资源
代码语言:javascript
复制
- webapp1
- storageaccount1
- newWebapp1 ( added by new `terraform apply` script )

4)请注意,我不希望terraform创建(如果是apply )或删除(如果是destroy )我的现有资源属于rg-exising

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-15 22:42:28

在这些帖子中挖掘了更多信息,并找到了一个解决方案这里

我们可以使用额外的参数来破坏地形,特别提到我们想要破坏的资源。

代码语言:javascript
复制
terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME

注意:我学到的是,在这种情况下,不需要使用terraform import命令。

票数 0
EN

Stack Overflow用户

发布于 2018-12-15 10:03:18

实际上,您只需要将资源映射到tfstate中的状态,所以只需:

代码语言:javascript
复制
resource "azurerm_resource_group" "rg-hemant" {
  name = 'rg-ResourceGroupName'
  location = 'australiaeast'
}

tf应该将此资源识别为状态文件中的资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53791274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档