编写terraform provider的背景
很多企业内部为了不与云厂商绑定,避免上云容易下云难的尴尬,以及企业内部可能也会做私有云,或者封装一个混合云平台,因此不能直接用云厂商提供的provider。
我们实现了基于内部混合云平台提供的基础设施接口,自研terraform provider,但由于前期投入人手不足,通过接口申请基础设施资源实际还是通过工单的方式由人工操作完成,尽管是“人工”智能,至少能够将申请基础设施这件事情代码化,并且能够通过代码记录下来,减少很多沟通成本。这也有利于业务随着公司战略跨地域迁移机房,以及异地多活的实现。
假设我们已经存在一个类似阿里云的混合云平台,并且为各种基础设施资源都提供了申请、删除、查询的http接口,现在我们需要编写实现terraform provider插件,能够通过编写HCL代码,执行terraform apply命令申请IaC资源、执行terraform destroy命令销毁IaC资源。
安装Terraform CLI工具
terraform cli是terraform客户端命令行工具,包括了terraform核心引擎。
mac上安装Terraform CLI:
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
验证是否安装成功:
terraform version
开发terraform provider
以VPC资源为例