乐趣区

关于开源软件:Terraform初体验一-windows安装

Terraform 是一款优良的开源 devops 工具,中文文档较少,特此整顿 Terraform 相干内容及应用办法。

Terraform 是什么?

在原始的数据中心利用部署中,咱们依赖于运维管理员手动去部署咱们的基础设施和服务,每一台服务器、每一个数据每一个负载平衡都须要手工配置和治理。这些在咱们当初看起来是十分恐怖的,手工带来的谬误配置、迟缓的部署形式都让公司的经营陷入光明,公司的基础设施和服务开始依赖于人的基数增长。好的音讯是计算机领域倒退了多年,devops 的概念在公司的经营运维中开始锋芒毕露,当初曾经涌现了很多优良的开源产品,明天要给大家介绍一款功能强大的 devops 工具:terraform。

Terraform 是一款用于平安无效地构建,更改和版本控制根底构造的工具。Terraform 能够治理现有数据中心资源和支流云服务提供商资源,以及定制的外部解决方案。

题外话:terraform 的母公司 HashiCorp 在往年 5 月份进行了包含 terraform 在内的多款软件企业版的中国使用权,但这不会影响开源产品的应用,在这不想过多介绍其中的起末,只想说开源产品是不属于某一家公司或者国家的,咱们国家也有很多优良的工程师为开源我的项目奉献,开源既是众人拾柴火焰高,也是世界沟通的桥梁,大家能够在平安可控的领域应用开源产品。

言归正传,Terraform 是 Go 语言开发的开源我的项目,github。Terraform 次要性能是:

  • 基础设施即代码(Infrastructure as Code):基础设施是应用高级配置语法来形容的。这样就能够像看待任何其余代码一样对数据中心的蓝图进行版本控制和解决。此外,基础架构能够共享和重复使用。
  • 执行打算(Execution Plans):Terraform 有一个“打算”步骤,在其中生成执行打算。执行打算将显示 Terraform 在您调用 apply 时将执行的操作。这样能够防止 Terraform 操纵根底构造时呈现任何意外。
  • 资源视图(Resource Graph):Terraform 构建所有资源的视图,并并行化所有非依赖资源的创立和批改。因而,Terraform 尽可能高效地构建基础架构,并且操作员能够洞悉其基础架构中的依赖性。
  • 变更自动化(Change Automation):简单的变更集能够以起码的人工干预就能够利用于您的基础架构。应用后面提到的执行打算和资源图,您能够精确地晓得 Terraform 将要更改的内容和程序,从而防止了许多可能的人为谬误。

Terraform 能够治理现有数据中心资源和支流云服务提供商资源。具体来说就是能够用代码来治理保护 IT 资源,把之前须要手动操作的一部分工作通过程序来自动化的实现,这样的做的后果非常明显:高效、不容易出错。它提供了对资源和提供者的灵便形象。该模型容许示意从物理主机、虚拟机、容器、EMail 和 DNS 等所有内容。因为这种灵活性,它能够用来解决许多不同的问题。

这意味着有许多现有的工具与 Terraform 的性能重叠。然而须要留神的是,Terraform 与其余零碎并不互相排挤。它能够用于治理小到单个应用程序或大到整个数据中心的不同对象。

Terraform 应用配置文件形容治理的组件(小到单个应用程序,大到整个数据中心)。Terraform 会生成一个执行打算,形容它将做什么来达到所需的状态,而后执行它来构建所形容的根底构造。随着配置的变动,Terraform 可能确定产生了什么变动,并创立可利用的增量执行打算。

讲了很多概念当前,大家对 Terraform 有了一个逻辑上的了解,接下来咱们开始装置 Terraform。

Windows10 装置 Terraform

Terraform 在 MAC 上装置还是绝对简略的,因为短少中文文档相干介绍内容,在 Windows 上装置也有踩了一些坑。举荐应用 chocolatey 进行装置。

装置 Chocolatey

Chocolatey 是一款基于 Windows 的包管理器,装置后能够轻松的像 linux 的 yum、apt-get 包管理器一样来治理你的 windows 中的利用。应用它来装置 terraform 的益处就是在前期删除降级都由它来治理,这是十分不便和疾速的装置办法。

  1. 以管理员身份关上 PowerShell,输出 Get-ExecutionPolicy,返回Bypass 则代表目前执行的是绕过策略来装置。如果返回的是 Restricted 受限制的,则须要运行Set-ExecutionPolicy AllSigned 或者 Set-ExecutionPolicy Bypass -Scope Process
  2. 复制上面这条命令即可装置实现,这里没有太多坑。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

通过 Chocolatey 装置 Terraform

执行命令 choco install terraform 即可实现装置,两头须要留神:

  1. 如果网络不够好,可能存在装置失败,能够至此链接下载 https://releases.hashicorp.com/terraform/0.13.3/terraform_0.13.3_windows_amd64.zip 后放至 C:Users$userAppDataLocalTempchocolateyterraform0.13.3terraform_0.13.3_windows_amd64.zip 目录,其中 $user 为你的以后用户。
  2. 操作后再次执行命令 choco install terraform 即可实现装置。

装置实现后执行 terraform -v 可查看以后装置版本,并查看装置胜利。很遗憾的是,没有找到在 windows 下的命令主动补全办法。

本文作者:UCloud 容器云产品经理 沈旭

退出移动版