terraform

introduction-terraformarrow-up-right


  • 使用choco安装 [admin权限]

    • choco install terraform

    • choco install consul -> 启动 consul agent -dev -> 页面 http://localhost:8500

  • 概念

    • terraform 是一个可以IaC [Infrastructure as code]工具,可以快速管理资源

      • 使用不同的provider操作不同的资源,如aws[aws],oss[alicloud],cos[tencentcloud],docker[docker]

        • provider 查询地址 https://registry.terraform.io/browse/providers

        • 需要做什么资源的crud,则需要在代码中声明相应的provider,并在执行 init 后下载成功后方可运行[下载后provider是一个exe文件]。

        • 不同provider的 resource 定义不一样,可以查找相应的文档来看属性值怎么填写

        • data 和 resource 的区别

          • data用于查询已经存在资源的属性和信息

          • resource是一种资源的定义

      • terraform.tfstate 文件是一个 保存资源关系及其属性文件的数据库,如果损坏则需要重建所有的tf资源

      • Backend: 设置Backend可以将 .tfstate 文件推送至远端,所有人在使用时候都是同一个 .tfstate 文件

  • 使用

    • terraform init [-h]

    • terraform plan

    • terraform apply

    • terraform destroy

  • 代码案例

    • local provider install and test: https://developer.hashicorp.com/terraform/tutorials/providers/provider-setup

    • 由于不同provider提供的resource不一样,所以定义资源时要看provider对应的文档才行,官方也只是提供了terraform的基础语法以及简单应用

Last updated