HashiCorp发布了Terraform 0.8,包括交互式控制台、Vault和Nomad供应器

简介:

HashiCorp发布了0.8版的Terraform。Terraform是一个开源工具,它能通过亚马逊网页服务、VMware vSphere和UltraDNS等基础设施供应商构建、组合和发布可编程基础设施。主要的新功能包括交互式控制台、条件值、HashiCorp Vault和Nomad供应器等。

Terraform 0.8版除原有的terraform控制台之外,还新增加了一个交互式控制台,它可以用于尝试插值,以及检查基础设施。HashiCorp的博客表示,对于不熟悉Terraform的开发者来说,控制台是一个非常棒的附加学习资源,因为插值(任何你想放入TerraForm配置属性的东西)可以被输入控制台,然后就可以看到它产生的输出了。控制台目前只读,这是为了防止任何对基础设施或状态的不小心误改。

插值现在支持基本的条件判断,它支持对值进行条件赋值,比如在一个资源的元参数里。当与资源的“count”参数结合起来时,这样就可以支持对资源的条件性包含,比如 ‘count = “${var.env == “production” ? 1 : 0}”。这个例子的意思是,通过将变量“env”设置成非“production”的某个值,那么相关的资源数量就会是0,因此它不会被创建。Terraform支持以下逻辑运算符: 相等判断==和!=,数字比较>、<、>=和<=,还有布尔运算符&&、||和!(一元运算)。

在Terraform0.8版本里,现在也可以指定对Terraform版本的限制了,方法是使用Terraform配置元参数“required_version”,比如“required_version >=0.8,<0.9”。HashiCorp的博客指出,添加这个功能的目的在于避免Terraform程序版本和Terraform配置之间的不一致,并且可以被用于某些场景,举例来说,某些缺陷已经在较新的版本中修复了,但是却有可能对现有的基础设施造成问题,那么加上这个参数就可以限制对版本的要求,从而避免意外的损坏。如果Terraform版本不能与要求的版本相匹配,Terraform将在很早的阶段就输出错误,通知用户他们必须改变他们的Terraform版本,才能够与配置一起正常工作。

创建和更改基础设施通常需要若干不同的凭据,例如API访问令牌和数据库管理密码等,而且存储这些凭据的最好的地方就是一个安全的秘密管理工具。Terraform Vault供应器允许Terraform 去读取Vault、写入Vault和配置Vault,Vault就是HashiCorp的管理秘密的工具。

Terraform的文档中声明,Vault供应器目前只支持一般性的秘密的后台,但这已经可以满足两种常见的初级用例了:(1)配置和填充Vault:Vault管理员可以使用Terraform去配置Vault,再用秘密填充它;(2)在Terraform配置中使用Vault凭证:凭证可以从Vault中获取,这意味着为了获得访问其他供应商的临时租约,运维人员或者运行Terraform的系统只需要访问一个赋予了适当权限的Vault令牌即可。

还有一点需要特别注意的是,Terraform的Vault供应器文档中提到,在Terraform中与Vault交互时,任何你读或写的秘密都会被保存在Terraform的状态文件中,同时还会保存在任意生成的计划文件中。所以对于任意读写Vault秘密的Terraform模块来说,这些文件都应被视为非常敏感的文件,因此需要被保护起来。此外,对于通过配置文件提供的秘密来说,目前Terraform没有提供任何编辑或保护它们的机制,因此相应地,对于选择使用Terraform去填充Vault秘密的团队来说,他们应该仔细阅读每个资源的文档的相关章节,了解这些秘密是如何被保存到状态中的,并且仔细考虑这样的做法是否满足他们公司的安全策略要求。

新的Nomad供应器允许Terraform为HashiCorp Nomad分布式调度器创建作业,它必须作为基础设施创建过程的一部分运行。这里的用例主要是系统作业或者批量初始化作业。HashiCorp博客表示,这一新功能并不是在试图完全取代Nomad的运行,但Terraform可以用来引导一个集群以及相关的应用。

Terraform 0.8版本也有几点与Terraform 0.7不能向后兼容的地方,HashiCorp团队建议开发者们认真查看升级指南。升级指南详细描述了版本之间不兼容的细节,以及在升级到0.8版本时所需要考虑的细节。

要了解更多关于HashiCorp Terraform v0.8发布的细节,可以查看HashiCorp的博客。在HashiCorp网站上可以下载Terraform二进制文件,并且在项目的GitHub库可以找到Terraform的代码(主要用Golang写成)。

本文转自d1net(转载)

相关文章
|
3天前
|
运维 安全 IDE
加速阿里云部署:Terraform在甄云科技的深度应用
甄云科技是一家领先的数字化采购平台服务商,通过Terraform实现全球云基础设施的高效管理与快速部署。公司成立于2017年,已服务全球30多个行业的中大型企业,客户遍布20多个国家和地区。利用IaC(基础架构即代码)理念和Terraform工具,甄云科技显著提升了开发与运维效率,减少了人为错误,加快了迭代速度,并支持业务快速扩展,为全球化战略提供了稳固的云基础架构支持。未来,公司将持续优化技术框架,回馈社区,助力更多企业的数字化转型。
|
4月前
|
弹性计算 持续交付 API
基于 ROS 的Terraform托管服务轻松部署ChatGLM-6B
文章介绍了如何利用ROS和Terraform模板轻松自动化部署基于GLM架构、优化中文对话的ChatGLM-6B模型至阿里云,提高了部署效率与便捷性,适用于多种应用场景,且模型部署过程详细,彰显了基础设施即代码(IaC)的优势。
基于 ROS 的Terraform托管服务轻松部署ChatGLM-6B
|
4月前
|
弹性计算 人工智能 持续交付
基于 ROS 的Terraform托管服务轻松部署Qwen-7B-Chat
文章介绍了如何利用ROS和Terraform模板轻松自动化部署阿里云的Qwen-7B-Chat大语言模型服务,提高了部署效率与便捷性,是实现云资源和服务快速上线的最佳实践。
基于 ROS 的Terraform托管服务轻松部署Qwen-7B-Chat
|
7月前
|
弹性计算 API 持续交付
基于 ROS 的 Terraform 托管服务轻松部署文本转语音系统 ChatTTS
基于 IaC 的理念,通过定义一个模板,使用 ROS 提供的 Terraform 托管服务进行自动化部署,可以非常高效快捷地部署任意云资源和应用(比如 ChatTTS 服务)。相比于手动部署或者通过 API、SDK 的部署方式,有着高效、稳定等诸多优势,也是服务上云的最佳实践。
基于 ROS 的 Terraform 托管服务轻松部署文本转语音系统 ChatTTS
|
8月前
|
弹性计算 持续交付 数据中心
一键云部署:ROS的Terraform托管服务助你轻松上线2048经典游戏
阿里云的资源编排服务ROS提供了Terraform托管能力,用户可以直接在ROS控制台上部署Terraform脚本,本文将详细介绍如何使用ROS的Terraform托管服务一键部署经典的2048小游戏到云端,让全世界的玩家都能在线体验。
EMQ
|
JSON 负载均衡 物联网
使用 Terraform 在 GCP 上一键部署 EMQX MQTT Broker
本文将指导您如何设置 GCP 项目、创建服务账户、编写 Terraform 配置文件,实现在 GCP 上轻松部署 EMQX MQTT Broker。
EMQ
172 0
使用 Terraform 在 GCP 上一键部署 EMQX MQTT Broker
|
存储 运维 安全
App Deploy as Code! SAE & Terraform 实现 IaC 式部署应用
SAE 和 Terraform 的结合,能够帮助企业像处理代码一样管理自己的应用,对资源的操作都变得可审计,可追溯,可回滚,同时也降低人为操作带来的风险。
App Deploy as Code! SAE & Terraform 实现 IaC 式部署应用
|
存储 运维 安全
App Deploy as Code! SAE & Terraform 实现 IaC 式部署应用
本文将简单的介绍 IaC 和 SAE 给企业带来的巨大便利,并通过一个使用 Terraform 创建 SAE 应用的例子感受 SAE & Terraform 给传统企业 IT 设施管理带来的降维打击
App Deploy as Code! SAE & Terraform 实现 IaC 式部署应用
EMQ
|
存储 JSON 安全
使用 Terraform 在 AWS 上快速部署 MQTT 集群
本文将以 MQTT 消息服务器 EMQX 为例,采用 AWS 作为公有云平台,介绍如何使用 Terraform 快速部署一个高可用的 MQTT 集群。
EMQ
245 0
使用 Terraform 在 AWS 上快速部署 MQTT 集群

推荐镜像

更多