云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_物理服务器_限量秒杀

小七 141 0

HashiCorp地形0.7

我们发布了Terraform0.7。Terraform是一种安全高效地构建、组合和启动基础设施的工具。Terraform仍然是HashiCorp增长最快的项目。在过去的一年里,我们发布了超过20个Terraform的小版本,扩展了资源和提供商的覆盖范围,并修复了bug。terraform0.7是一年来第一个新的主要特性发布版。terraform0.7为Terraform添加了新的功能。亮点包括:进口数据源状态管理CLI列表和映射类型»社区我们要感谢不断增长的社区不断改进、修正和想法。我们知道Terraform的发展速度非常快,我们有时会因为问题和拉请求而落后,但我们感谢社区对Terraform的响应和热情。Terraform现在有500多个贡献者和十几个核心提交者。与大多数Terraform版本一样,大部分更改都是由于我们从社区收到的大量贡献。除了纯代码贡献外,社区在邮件列表、会议等交互中的响应和周到都做得非常好。谢谢你们Terraform社区!»进口terraform0.7提供了将现有基础设施资源导入Terraform的能力。对于Terraform的这个版本,import一次只能将一个资源导入到状态中。Terraform不生成配置。随着时间的推移,我们希望扩展这个特性来生成配置、导入多个资源等等。我们要强调的是,import是一个复杂的特性,terraform0.7是这个特性的第一次迭代。这使得逐步将地形引入现有基础设施成为可能。import的用法很简单:$terraform导入aws_实例.foo工字钢1234…在上面的例子中,使用给定的ID导入一个AWS实例,这将与awsapi通信,找到该实例,并将其添加到Terraform状态。如前所述,当前形式的导入不会自动为您生成配置。如果您导入并立即terraform plan,您将看到terraform计划销毁该资源,因为它看不到该资源的配置。通过手动添加与资源匹配的配置,Terraform将不会显示任何计划的更改,从而完成成功的导入。»数据源从历史上看,Terraform的一大痛苦来源是处理只读资源。这些资源并不完全适合Terraform资源的create-read-update-delete模型。例如:CONSUR keys、AWS AMIs等。在terraform0.7中,我们引入了一个新特性,将仅数据资源作为Terraform配置中的第一类类型:数据源。数据源允许外部数据填充地形配置。此数据总是在刷新时加载并可用于计划。通过将现有的只读资源转换为数据源,您的terraform计划输出的将大大减少,并且更加有用!数据源感觉很像一种资源:数据"aws_ami""nat"{最近=真过滤器{name="所有者别名"值=亚马逊"]}过滤器{name="名称"值=amzn ami vpc nat*"]}}输出"ami"{值="${数据.aws_ami.自然图像}"}在上面的例子中,我们查询AWS中最新的natami并将其作为输出写入。运行terraform apply后,您可以看到值:$terraform应用...输出:ami=ami-bae80fd7terraform0.7提供了很多数据源,比如aws_ami。随着时间的推移,我们希望社区能够添加数百个新的数据源。而且,与Terraform一样,您可以编写插件来添加自己的数据源。阅读有关数据源的文档以了解更多信息。»状态管理CLI我们引入了一组丰富的子命令来安全地检查和修改Terraform状态:Terraform state。这些命令可用于列出状态中的资源、重命名资源、将资源移入和移出模块等等。这些命令的目的是避免对地形状态文件进行任何手动修改。下面的示例列出了状态资源:$terraform状态列表美国焊接学会_实例.foo美国焊接学会_实例.bar[0]美国焊接学会_实例.bar[1]模块.elb.aws_elb.主您还可以重命名或移动资源和模块。下面的示例重命名单个资源:$terraform州mv aws_实例.foo美国焊接学会_实例.bar下一个示例将单个资源移动到模块中:$terraform州mv aws_实例.foo模块.web最后一个例子将一个模块移到一个完全不同的状态文件中。这是一个高级重构选项,在将地形配置拆分为多个状态时非常有用。$terraform state mv-状态输出=其他.tfstate\模块.web模块.web除了上面显示的示例外,您还可以显示单个资源的属性,可以从状态中删除项,等等。命令的输出故意简单,面向行,以便对类Unix的工具友好。与Terraform中的其他命令不同,这些命令为每个选项生成状态文件的时间戳备份。这使您可以在一系列复杂的状态修改期间回滚到任何点。这两个属性都允许在脚本中安全地使用状态管理CLI。»列表和映射类型现在,您可以将列表和地图表示为Terraform配置中的第一类数据类型。Terraform用户以前会使用split和join函数的组合来伪造列表。虽然这种方法适用于简单的情况,但在更复杂的情况下很快就会崩溃。在terraform0.7中,列表和地图是解决这些问题的第一类类型。示例用法如下所示:# 主.tf变量"allowed_cidr_blocks"{type="列表"}"appsecuritygroup"模块{source="./appsecuritygroup"允许的块="${var.cidr_区块}"}#应用安全组/sg.tf变量"allowed_cidr_blocks"{}资源"aws_security_group""app"{#允许所有出口出口{从端口=0到端口=0协议=-1cidr_块=0.0.0.0/0"]}#只允许从指定的cidr块进入入口{从端口=0到端口=0协议=-1cidr_块="${允许的可变区块}"}}在上面的配置中,您可以看到我们使用"list"类型声明了allowed_cidr_blocks变量,并将其直接传递到模块中。下面是在标志中为该变量提供值的示例:地形平面图-var'允许的'u cidr_块=10.0.1.0/24","10.0.2.0/24"]'列表和映射的值也可以通过变量文件和环境变量传递。阅读v0.7升级指南中有关列表和地图的更多信息。»结论地形的增长是爆炸性的。我们看到了巨大的商业利益以及社区的巨大增长。我们很高兴发布Terraform0.7,它具有一组强大的特性,可以进一步支持这种应用。我们致力于定期发布Terraform的小版本,因此您可以预期Terraform 0.7.1及更高版本将在下个月推出,因为我们将继续改进Terraform。去下载Terraform,试试看吧!