Terraform是一种开源工具,用于安全高效地预览,配置和管理云基础架构和资源。
一、安装 Terraform
1、下载 Terraform
官方提供了最新版本的Terraform 可用下载
输入下载及安装命令行:
# download terraform |
2、 配置环境变量
添加Terraform的环境变量,或者直接放在 /usr/local/bin/
目录下
二、使用 Terraform 管理腾讯云
下面是Terraform管理腾讯云资源的具体方法:
1、 Terraform工作流程
1、 一次性配置 provider 文件以支持Tencent Cloud的 OpenAPI.
2、使用Terraform配置语法生成 .tf 资源文件.
3、使用CLI实现腾讯云资源的管理.
Terraform会将整个资源部署情况更新在 *.tf.state 文件中,让用户在前端控制台和后端平台都清晰的把控自己的云资源。
2、 配置腾讯云 provider 文件
登录腾讯云,在访问管理中选择API秘钥管理,获得Secret_Id和Secret_Key
在新目录下创建 provider.tf 文件,填入秘钥和区域信息
$ vim provider.tf |
保存该文件,执行 terraform init
初始化Terraform。
此步骤,Terraform会自动检测 provider.tf 文件中的 provider 字段,发送请求到Terraform官方GitHub下载最新版本腾讯云资源的模块和插件,初始化成功时当前脚本的版本信息也会显示出来。
# Initialize |
当腾讯云脚本有新的版本发布时,可以通过 terraform init -upgrade 指令更新脚本,获取最新的应用。
同时,可以通过 terraform plan
预览将要完成的操作,准备好创建资源后,可以通过 terraform apply
进行资源部署,更多有关Terraform CLI 的信息请点击这里。
tips: NOTES 将秘钥直接填入到.tf文件中是十分不安全的,在多用户共同管理资源时,不建议把腾讯云API 的秘钥直接写到源代码里,以免一不小心更新到公开的版本中,造成安全风险。
腾讯云提供了另一种更为安全可靠的方式,把秘钥信息放在环境变量中配置
# Configure the secret key in the environment path |
这样在 provider.tf 文件中就可以省略掉相关信息
$ vim provider.tf |
3、 部署腾讯云资源
下面提供一个创建腾讯云对象存储(COS)存储桶的实际用例。
创建实例资源文件
resource "tencentcloud_cos_bucket" "mycos" { |
这里可以看到,上传文件至存储桶没有直接填写具体参数信息,而是引用 “tencentcloud_cos_bucket.mycos.bucket” 。
执行 terraform plan 查看部署计划,一共有2个资源计划创建
这里参数前面的+ 代表新添加的资源,当销毁资源时,参数前面对应的符号会变为- ;更改一些参数需要重新部署资源时,该资源前面的符号为-/+;在旧参数和新参数内容之间有→ 符号标识
执行 terraform apply 进行资源创建
回到控制台,可以看到刚刚部署的资源已经生效
执行 terraform destroy 进行资源销毁(控制台中也同步了销毁操作)
三、使用 Terraform 管理 Helm
下面是Terraform管理 Helm 的具体方法:
1、 配置 Helm provider 文件
官方文档:Helm Provider
修改 provider.tf 文件并初始化
terraform { |
2、 部署 Helm Chart
这里提供一个 Mysql Chart 的简单用例
Helm Chart仓库
创建实例资源文件
resource "helm_release" "mysql" { |
这里可以看到通过 set
重新设置了 mysql
的 root
密码
执行 terraform plan 查看部署计划,一共有3个资源计划创建
执行 terraform apply 进行资源创建
控制台,可以看到 Helm Chart 部署完成,且相关资源都正常启动
反复执行 terraform apply 进行资源更新,可以看到资源没有变更
tips:可以通过 ignore_changes 忽略部分变更的更新动作
执行 terraform destroy 进行资源销毁(控制台中也同步了销毁操作)