Terraform 导入存量资源

举报
kaliarch 发表于 2022/05/14 12:32:45 2022/05/14
【摘要】 一 背景利用Terraform进行基础设施管理的时候,又遇到对于云平台存量资源的纳管导入,terraform 提供了import的命令,帮助我们来讲现有的资源导入到terraform以便后期进行管理。 二 导入资源工作流识别哪些资源需要导入到terraform进行管理。导入需管理的基础资源为state文件。编写terraform 得配置来匹配基础设施。利用terraform plan来确保...

一 背景

利用Terraform进行基础设施管理的时候,又遇到对于云平台存量资源的纳管导入,terraform 提供了import的命令,帮助我们来讲现有的资源导入到terraform以便后期进行管理。

二 导入资源工作流

  • 识别哪些资源需要导入到terraform进行管理。
  • 导入需管理的基础资源为state文件。
  • 编写terraform 得配置来匹配基础设施。
  • 利用terraform plan来确保配置与期望的一致。
  • 应用配置去更新terraform state文件。

三 实操腾讯云CVM实例导入

3.1 新建空资源对象

创建腾讯instance空资源对象

resource "tencentcloud_instance" "myinstance" {


}

provider "tencentcloud" {
  region = var.region
}

variable "region" {
  type = string
  default = "ap-guangzhou"
}

terraform {
  required_providers {
    tencentcloud = {
      source  = "registry.terraform.io/tencentcloudstack/tencentcloud"
      version = ">=1.61.5"
    }
  }
}

3.2 获取控制台instance唯一标识

针对instance的控制台唯一标识为instanceid

3.3 利用terraform cli执行导入

terraform import tencentcloud_instance.myinstance ins-rmgz4a3q

3.4 查看state文件补全资源

查看生产的state文件,针对导入的资源对象进行

或者使用terraform show -no-color > cvm.tf来进行删减。

3.5 再次执行plan验证

针对修改的资源对应进行修正以达到和目前状态一致。

限制和注意事项

  • Terraform 导入只能知道 Terraform 提供者报告的基础设施的当前状态。它不知道:

    • 基础设施工作的状态
    • 对不受 Terraform 控制的基础设施所做的更改——例如,Docker 容器文件系统的状态
    • 基础设施的意图
  • 导入涉及容易出错的手动步骤,尤其是在导入资源的人缺乏关于如何以及为什么首先创建这些资源的上下文的情况下。

  • 在进行terraform state文件import的时候,提前做好现存state文件备份。

  • terraform导入不会检测和生成现存资源直接的关系。

  • Terraform 不会检测不需要在配置中设置的默认属性。

  • 并非所有提供的privoders的资源都支持导入

  • 仅仅因为基础设施已导入 Terraform 并不意味着它可以被 Terraform 销毁和重新创建。例如,导入的基础架构可能依赖于其他非托管基础架构或配置。

  • 您可能需要设置与远程工作区变量等效的局部变量才能导入到远程后端。 import 命令总是在本地运行——不像 apply 这样的命令在您的 Terraform Cloud 环境中运行。因此,import 将无法访问来自远程后端的信息,例如工作区变量,除非您在本地设置它们。

参考资料

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。