-
Terraform简介 - Terraform
什么是Terraform Terraform是一个开源的IT基础设施编排管理工具,Terraform支持使用配置文件描述单个应用或整个数据中心。 通过Terraform您可以轻松的创建、管理、删除华为云资源,并对其进行版本控制。Terraform支持编排的云资源请参考这里。 图1 使用Terraform管理云资源
-
Resource - Terraform
是Teraform中最重要的元素,通过关键字 "resource" 进行声明。Provider中支持的云服务都有一个或多个资源与之对应,如huaweicloud_compute_instance表示ECS,huaweicloud_vpc表示VPC等。资源之间的关系可以通过关系型资源进行关联,如我们可以使用
-
增加只读实例 - Terraform
-
Provider - Terraform
进行声明,Provider的配置参数请参考这里。 执行 terraform init 命令时会下载使用的插件,默认将从Terraform官方仓库下载最新版本的插件。对于Terraform 0.13之后的版本,可以使用 "required_providers" 指定Provider的 registry
-
for - Terraform
for_each 在功能上与 count 相似,for_each 使用键值对或字符串集合的形式快速地将值填入到对应的属性中,不仅可以优化脚本结构也有利于理解多实例间的关系。 在使用映射类型表达时,我们可以使用 "each.key" 和 "each.value" 来访问映射的键和值。以创建VPC为例,通过
-
基本操作 - Terraform
对象存储服务OBS(Object Storage Service)提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。适合企业备份/归档、视频点播、视频监控等多种数据存储场景。 相关资源 huaweicloud_obs_bucket huaweicloud_obs_bucket_object
-
创建MySQL数据库 - Terraform
(必填)实例所属的VPC ID subnet_id (必填)实例所属的子网网络ID security_group_id (必填)实例所属的安全组ID db type (必填)数据库引擎类型 取值范围:MySQL、PostgreSQL、SQLServer version (必填)数据库引擎版本,MySQL引擎支持5
-
典型网络配置 - Terraform
-
Backend - Terraform
命令将会按照模块的定义变更或者重建资源,直到模块对资源的定义与 state 中的映射保持一致。如果实际的资源依然存在于云平台中,这将会导致资源的重复创建或者创建失败。 在团队协作中,如果想维护同一套资源,需要将资源的配置文件和 state 文件一起拷贝,这无形中增加了代码维护的成本。为了
-
给RDS实例绑定EIP - Terraform
fixed_ip (必填)RDS实例的内网IP地址 network_id (可选)RDS实例所属的子网网络ID huaweicloud_vpc_eip_associate public_ip (必填)EIP的IP地址 port_id (必填)RDS实例对应的Port的ID 样例代码 https://github
-
输出变量 - Terraform
ECS" } output 关键字后的标签为输出变量的名称,该名称必须是有效的标识符。output块中主要包括以下参数: value:必选项,输出变量的值,任何有效的表达式都可作为输出使用。 description:输出变量的描述信息,用于描述输出变量的用途。 output "vpc_id"
-
Data Source - Terraform
Data Source 可以认为是特殊的Resource,通过关键字 "data" 进行声明。Data Source 用于查询已经存在资源的属性和信息,例如我们可以通过 "Ubuntu 18.04 server 64bit" 的镜像名称查询得到对应镜像的ID及其他属性: data "h
-
基本语法 - Terraform
):映射类型,以键值对(key-value pair) 的方式组合起来的数据元素集合,其中key为string类型,对应的值可以是string,number,bool等类型,且所有元素的值必须是同一类型。 list(...):列表类型,具有同类型的数据元素集合,元素可以是基本类型和块类型,列表索引从0开始。
-
输入变量 - Terraform
string default = "cn-north-1a" } variable 关键字后的标签是输入变量的名称,该名称在同一模块中的所有变量之间必须唯一。变量的名称可以是除保留关键字以外的任何有效的标识符。保留关键字包括: source version providers
-
lifecycle - Terraform
再使用新配置的参数创建新的对象进行替换。当我们将 create_before_destroy 参数设置为 true 时,Terraform将先创建新的实例,再销毁之前的实例。这个参数可以适用于保持业务连续的场景,由于新旧实例会同时存在,需要提前确认资源实例是否有唯一的名称要求或其他约束。
-
其他命令 - Terraform
terraform fmt 该命令用于将当前目录及其子目录下的所有的 .tf 文件进行格式化,使其代码风格统一。 terraform graph 该命令用于根据配置文件或执行计划输出资源的可视化依赖关系,命令的输出为 DOT 格式数据。 $ terraform graph digraph
-
基本命令 - Terraform
选项对使用的Provider和Modules进行更新。 $ terraform init -upgrade=true terraform plan terraform plan 命令用于创建执行前的计划,是 terraform apply 执行前的一个预览方式,可以检查当前的变更是否符合预期。terraform