Terraform Cloud初体验

举报
kaliarch 发表于 2022/06/11 12:23:53 2022/06/11
【摘要】 一 前言Hashicorp在2019年5月决定将Terraform Cloud的远程状态管理功能免费开放给开源版用户。这个版本也同时开放了更多的免费功能给不超过5人的团队使用。Terraform Cloud的功能分成免费版、团队版以及集中控制功能,本文主要对免费版功能进行介绍。Terraform Cloud 是一个帮助团队一起使用 Terraform 的应用程序。它管理 Terraform...

一 前言

Hashicorp在2019年5月决定将Terraform Cloud的远程状态管理功能免费开放给开源版用户。这个版本也同时开放了更多的免费功能给不超过5人的团队使用。Terraform Cloud的功能分成免费版、团队版以及集中控制功能,本文主要对免费版功能进行介绍。

Terraform Cloud 是一个帮助团队一起使用 Terraform 的应用程序。它管理 Terraform 在一个一致和可靠的环境中运行,包括容易访问共享的状态和秘密数据,用于批准基础设施更改的访问控制,用于共享 Terraform 模块的私有注册,用于管理 Terraform 配置内容的详细策略控制,等等。

1.1 Terraform Cloud架构

1.2 Terraform Cloud优势

  • 远程执行:可以运行 Terraform 命令在 Terraform 自己的基础设施中的虚拟机上远程配置基础设施。它减少了系统级故障、并行执行、状态文件中断等。

  • Terraform cloud workspace:Terraform 云使用工作空间管理基础设施集合。它就像单独的工作目录一样工作。云工作空间不仅限于状态文件,它的配置,变量、状态管理和凭证和秘密。云工作区和 CLI 工作区之间的唯一区别是,CLI 工作区只能区分状态文件。

  • 远程state管理:运行远程操作时,Terraform 云会自动配置工作空间的状态。它不需要后端配置。如果存在后端配置,那么它将被覆盖。Terraform 云为状态管理提供版本控制、操作、数据共享和访问控制等功能。状态可以在 Terraform 云中的组织和工作区之间共享。

  • 集成版本控制和触发:由于 Terraform 是基础设施即代码服务,它支持与一些 VCS 提供商(如 Github、Gitlab、Azure Devops 和 Bitbucket)的版本控制系统集成。Terraform 执行可以在由拉取请求合并或在 VCS 中推送的新提交时触发。它可以用作 CICD 管道。

  • CLI集成:Terraform 云远程操作可以与本地系统集成。它允许运行 Terraform 计划并将命令从本地系统自由地应用到链接的工作空间。但是在版本控制系统 (VCS) 与工作空间的集成中,您将只被允许运行 Terraform 计划,Terraform 应用命令不适用于 VCS 集成。

  • 私有仓库:当需要从同一源配置提供多个环境时,当需要将该模块私有存储在 Terraform 云中时,可重用模块非常有用。在这种情况下可以使用私有注册表。私有注册表允许我们存储模块并在工作空间中使用这些模块。

  • 访问控制和治理:组织中的大型团队在 Terraform 云中有许多工作区,并且最需要管理跨团队成员对这些工作区的访问,Terraform 云提供付费功能以满足大型组织的控制和治理需求。

  • 保护策略&成本评估:Terraform 云提供了哨兵,这是一个策略即代码框架。它用于执行有关如何配置基础架构的细粒度策略。例如限制虚拟机的大小,将主要更新限制在定义的维护窗口等。这些策略可以作为坚定的要求,咨询警告或软要求,可以通过团队的明确批准绕过。

    成本优化是 Terraform 云的独特功能。在对提供商进行更改之前,Terraform 云可以显示其总成本的估计值,以及由提议的更新引起的任何成本变化。成本优化也可以与预警策略集成。

二 账号注册

https://app.terraform.io/signup/account?utm_source=cloud_landing&utm_content=offers_tfc

三 简单示例

尝试一个示例配置

  1. 在终端中运行以下命令并按照提示获取 API 令牌以供 Terraform 使用。如果您没有 Terraform 0.13 或更高版本,则需要安装它 第一的
terraform login

获取登录token,填写至cli终端进行登录。

  1. 克隆示例仓库 .
git clone https://github.com/hashicorp/tfc-getting-started.git
  1. 运行设置脚本并按照提示完成设置并执行您的第一次 Terraform Cloud 运行!
cd tfc-getting-started && ./scripts/setup.sh

  • state文件

四 自建组织和工作空间

创建组织,创建workspace

选择github,除了GitHub还支持GitLab,Bitbucket,Azure DevOps。

Fork 这个示例仓库到自己github:https://github.com/redhatxl/tencent-cloud-simple-example

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

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

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

  • 手动触发plan

  • 测试GitHub提交PR出发

此刻terraform自动就回去执行。

五 注意事项

  • 可以在workspace设置terraform的版本:

  • tencent的provider需要指明source地址
provider "tencentcloud" {
  secret_id  = ""
  secret_key = ""
  region     = ""
}


terraform {
  required_providers {
    tencentcloud = {
      source  = "registry.terraform.io/tencentcloudstack/tencentcloud"

    }
  }

}

六 其他

参考链接

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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