Terraform – Import的使用

Terraform Import的作用是,我们可以把原本已经手动创建的云资源导入到 terraform来,然后使用terraform来管理云资源。

以下的使用案例是编写import文件,如果想要使用命令行import的话需要查看官方文档。

【命令行import云资源】
terraform import aws_instance.example i-abcd1234

官方文档Import教程:https://developer.hashicorp.com/terraform/tutorials/state/state-import?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS

使用案例

导入原有已经创建的Security group,然后更改description

  1. 编写import.tf
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">=5.0"
    }
  }
}
provider "aws" {
  region = "ap-southeast-1"
}

import {
  id = "sg-053b7190b6901db91"
  to = aws_security_group.mysg
}

2.执行init

terraform init

3. 执行生成云资源tf文件 , 生成文件名是generated.tf

 terraform plan -generate-config-out=generated.tf

4. 生成云资源的tfstate文件

terraform apply -auto-approve

5. 尝试更改已经导入的Security group的description

更改之后就执行以下命令

terraform apply -auto-approve

结果:是成功更改了description, 但是由于Security group description是创建之后就无法更改了,如果想要更改的话,terraform就会destroy了再重新创建一个,所以Security group id 会不一样。

更改前的ID: sg-053b7190b6901db91
更改后的ID: sg-0e3aa8c2c80391c89 

Loading

Facebook评论