CLI+Terraform简化资源管理的模板编写

Terraform是一个比较强大的自动化资源编排管理工具,通过模板描述资源,通过apply命令创建/更新资源。详细的使用方法及特性可以参见公众号中关于Terraform的其他文章了解。本文将主要讲解如何利用CLI+Terraform简化模板的编写。

Terraform的模板由几大结构组成:资源(resource)、变量(variable)、输出(output),他还有一个很重量级的结构:数据源(data)。数据源是用来过滤资源中parameter的可选项的,举个例子,ECS的实例类型(instance_type)有90多个选项,我们希望能够根据一些条件过滤这些选项,这时便可以利用data的特性,描述需要ECS的规格(几核 几G 哪个系列),data结果中将会返回符合过滤条件的列表,在resource中直接指定数据源为此data即可。data结构的例子如下:

data "alicloud_instance_types" "4c8g" {
    instance_type_family= "ecs.s3"
    cpu_core_count = 4
    memory_size = 8
}

在resource中引用:

instance_type = "${data. alicloud_instance_types. 4c8g.0.id}"

除实例类型(instance_type)外,ECS的datasource还提供了镜像(images)、地域(regions)、可用区(zones)的数据过滤,详细文档可参见 https://www.terraform.io/docs/providers/alicloud/index.html,或 data_source_alicloud_instance_types_test.go 其中含有示例代码。

datasource在Terraform模板编写时为参数获取提供了便利,如果再加上CLI,使用会更便捷,在上面的模板例子中可以通过CLI方便的看到ECS的系列(instance_type_family)数据,当然也可以看到实例类例、镜像、地域、可用区等数据,将其值放在模板中,将大量简化我们模板编写时对参数可选值的获取。

CLI的安装及使用

  • CLI安装: sudo pip install aliyuncli
  • ecs调用包安装: sudo pip install aliyun-python-sdk-ecs
  • 配置: aliyuncli configure,按提示输入AK、region、output format(建议table)
  • 执行aliyuncli ecs 将能够看到支持的命令,以上面的例子为例输入aliyuncli ecs DescribeInstanceTypeFamilies 将能够看到返回的系列列表,如下图:

  • CLI的更多帮助请参见https://help.aliyun.com/document_detail/29993.html

更多Terraform的模板请参考https://github.com/alibaba/terraform-provider/tree/master/terraform/examples,有问题可以在issue中提问。欢迎大家关注我们的开源自动化运维工具集:https://github.com/alibaba/opstools/

时间: 2024-10-30 03:04:19

CLI+Terraform简化资源管理的模板编写的相关文章

前端工程与性能优化之静态资源管理与模板框架

本系列文章从一个全新的视角来思考web性能优化与前端工程之间的关系,通过解读百度前端集成解 决方案小组(F.I.S)在打造高性能前端架构并统一百度40多条前端产品线的过程中所经历的技术尝试 ,揭示前端性能优化在前端架构及开发工具设计层面的实现思路. 在上一部分,我们介绍了静 态资源版本更新与缓存.今天的部分将会介绍静态资源管理与模板框架的用法. 静态资源管理与模板框架 让我们再来看看前面的优化原则表还剩些什么: 很不幸,剩下的优化原则都 不是使用工具就能很好实现的.或许有人会辩驳:"我用某某工具

图像处理-求用VC++代码编写高斯公式,不要模板编写的

问题描述 求用VC++代码编写高斯公式,不要模板编写的 怎样用VC++实现高斯滤波进行图像处理,我看到网上的程序都是根据模板来编写的,而且都是三阶的,能不能哪位前辈提供一个三阶卷积到两次一阶的卷积那?还有就是能不能提供一个用高斯公式编写的VC++程序?

使用LESS简化层叠样式表(CSS)的编写

CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中.HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义. 作为一门标记性语言,CSS 的语法相对简单,对使用者的要求较低,但同时也带来一些问题:CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端http://www.aliyun.com/zixun/aggregation/7433.html">开发工程师来讲,往往会因为

简化你的ASP编写工作 (原数据库操作类clsdbCtrl.asp)

首先,认为ASP已经过时的人,请忽略此帖,谢谢.俺这里只是提供一种思路,希望能给很多还在学习和使用ASP的朋友一种方便.尽管俺现在也很少用ASP了,但俺相信只要能满足应用,就没有什么过时不过时的,也许它的语言没那么高级,但做出来的应用不一定就低级,呵呵.     EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Eas

使用Azure托管磁盘简化云存储管理

   今年早些时候,微软公司发布了Azure托管磁盘,这是一个简化云计算管理员存储管理的新功能,并为可用性,图像捕获等提供了其他优势. 非托管磁盘面临的挑战是快速复杂化.每个云存储账户在总体容量和支持多少IOPS方面都有限制.此模式意味着管理员可能需要在部署多个虚拟机时创建多个存储账户.此外,管理员必须确保它们不会超出容量限制,并且每个存储账户都可以提供账户中所有磁盘所需的IOPS(每秒的输入输出量). Azure托管磁盘简化了这个过程.它们提供了一个抽象层,可以帮助管理员处理为虚拟硬盘(VHD

云生态下的基础架构资源管理利器Terraform

About Terraform Terraform (https://www.terraform.io/) 是HashiCorp旗下的一款开源(Go语言开发)的DevOps 基础架构资源管理运维工具,可以看下对应的DevOps工具链: Terraform可以安全高效的构建.更改和合并多个云厂商的各种服务资源,当前支持有阿里云.AWS.微软Azure.Vmware.Google Cloud Platform等多个云厂商云产品的资源创建. Write, Plan, and Create Infras

Terraform中DataSource的深度分析

一.DataSource功能介绍 DataSource是Terraform官方提供的插件功能,各个Provider可以实现自己的DataSource能力,目的是通过DataSource中的定义过滤需要的数据,一是简化模板编写时数据过滤的复杂性,二是各个资源对Data源的引用保持一致,比如想要知道"华北2"下CPU为1核,内存为1G的ECS实例类型是什么,就可以用DataSource,如果想引用这个数据源,就可以这样使用"${data.alicloud_instance_typ

巧用Terraform和Packer开源工具完成云上自动运维

2017年在线技术分会--运维/DevOps在线技术峰会上,来自阿里云的黎山分享了利用开源DevOps工具完成云上的自动运维的实践.她首先通过对5个应用场景的分析引出了"自动化能自动化的一切"的理念.然后介绍了使用Terraform和Packer开源工具完成云上自动运维的具体实现过程.最后对多工具组合案例进行了分享.   以下内容根据直播视频整理而成.   云计算的特点是开箱即用,可以随时扩缩容,不用考虑硬件的损坏问题,而且有丰富的云平台和云产品供选择. 应用场景分析 应用1 某应用1

Terraform/Ansible on Cloud--基础设施和应用管理实践

摘要:随着云计算.大数据.AI智能等前沿科技的发展,传统的研发速度,越来越难满足企业快速发展的需求.研发效能也成了继商业模式.技术突破之后的另一核心竞争力.在由阿里云研发协同RDC以及阿里云联合举办的首届阿里巴巴研发效能嘉年华上,来自阿里云飞天八部企业服务云应用服务团队的高级研发工程师箫竹为大家分享了基础设施和应用管理实践,主要介绍了Terraform和Ansible两大自动化基础设施和应用管理工具,并结合实际应用场景介绍了如何在云上使用Terraform和Ansible工具提升基础设施和应用管