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_instancefamily

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值