Terraform Cloud免费开放

2019-09-16 14:43:02 浏览数 (1)

Terraform Cloud正式GA

为了方便广大开源客户,Hashicorp在2019年5月决定将Terraform Cloud的远程状态管理功能免费开放给开源版用户。而上周在西雅图的Hashiconf上,为了满足中小企业的需求,Hashicorp正式推出了Terraform Cloud,这个版本也同时开放了更多的免费功能给不超过5人的团队使用。Terraform Cloud的功能分成免费版、团队版以及集中控制功能,本文主要对免费版功能进行介绍。

免费版功能

免费版功能包括版本控制集成、远程计划和实施远程计划和实施、通知及webhook、全http API驱动、状态管理、模拟计划、私有化模块注册器以及全HTTP界面。

版本控制集成

其中版本控制集成提供了对GitHub,GitLab,Bitbucket的支持。Terraform的源代码可以存储在以上三种版本控制软件中,在源文件出现变化的情况下,Terraform Cloud会自动同步源代码并进行计划和实施。除此之外,用户也可以通过命令行、图形界面或者API来进行计划和是实施。

对远程状态管理进行增强

除了之前开放的远程状态管理功能,Terraform Cloud的workspace中,还包括了保存敏感信息、提供terraform变量和环境变量的功能。

团队协作

免费版用户也可以创建团队,并且邀请不超过5名其它terraform 用户一起对组织里的Terraform workspace进行管理。

下面我们看一看具体怎样使用Terraform Cloud。

具体怎样使用Terraform Cloud

创建一个新的组织

首先需要创建一个新的组织,只有新创建的组织才会获得新功能。

Greenshot 2019-09-14 20.01.09.pngGreenshot 2019-09-14 20.01.09.png

与GitHub进行集成

创建新组织以后,会有自动向导引导用户集成版本控制,本文以GitHub为例。

首先选择GitHub,向导会要求用户授权:

Connecting-Github1.pngConnecting-Github1.png
connecting-github-2.pngconnecting-github-2.png
connecting-github-3.pngconnecting-github-3.png
connecting-github-4.pngconnecting-github-4.png

经过这几个步骤以后,跟GitHub的集成就完成了,下面是向导自动创建一个新的workspace,将workspace与给定的repo连接。

connecting-github-6.pngconnecting-github-6.png
connecting-github-7.pngconnecting-github-7.png

下一步对workspace的变量进行配置。这里的变量包括以前在单机版上的环境变量,以及源代码tfvars文件中的terraform变量:

variables-secrets.pngvariables-secrets.png

注意这里可以有选择的将一些变量标记成敏感,这样该变量的具体数值就不会在界面上显示,而其它用户甚至管理员也不能看到这个值。

变量配置完成以后,就可以通过图形界面驱动计划和实施了:

queue-plan.pngqueue-plan.png

一个简单的图形界面人工驱动流程就完成了。下面看一下gitops的流程:

做一个pull request

pullrequest.pngpullrequest.png

Terraform Cloud会做一个模拟计划

Pull Request生成后,github会通知Terrform Cloud做检查,大约几秒钟以后,terraform cloud的检查结果就会反映到github界面上:

pullrequest-check.pngpullrequest-check.png

这个pull request的检查结果是正常的,用户也可以点击“details”,直接到Terraform Cloud中去查看具体的计划结果。

这个功能不但可以让用户看到代码的改变,而且可以看到这些代码改变对云资源的影响。

批准pull request

用户根据模拟计划的结果,决定批准还是拒绝这一个pull request。也可以拷贝粘贴terraform cloud的计划输出到github里来。

add-comment-to-pr.pngadd-comment-to-pr.png
merged.pngmerged.png

成功实施

PR通过以后,terraform cloud就会进行实施。

needs-confirmation.pngneeds-confirmation.png

注意缺省设置下,这个实施需要批准,用户也可以在workspace通用设置里,设置成自动实施。

set-auto-apply.pngset-auto-apply.png

邀请其它用户一起管理workspace

有了这个基础以后,你可以开始邀请其他人加入你的团队(team),整个团队可以通过统一的流程来管理云资源了。

结语

本文用到的腾讯云例子可以在这里找到。可以看到这个目录中的源代码跟[腾讯云第一个例子](https://github.com/ausmartway/tencent-cloud-simple-example/tree/master/first-example)有所不同,原先用来保存腾讯云密钥的文件已经不再使用了,现在使用了环境变量进行存储。

Terraform Cloud本身就是一个pipeline,可以直接与版本控制集成,并通过gitops来进行整个云资源环境的规划和实施。如果你已经有了现成的pipeline,Terraform Cloud还可以通过HTTP API来驱动, 能够很简单的集成到pipeline里。各位还在等什么呢?

0 人点赞