Provide Best Programming Tutorials

Terraform 常用命令详解

Terraform是一个面向客户端的工具,所以对所有资源的管理都是通过Terraform命令来实现的。本文将主要围绕资源的管理和状态的管理来两个方面来介绍涉及到的常用命令。 1 资源管理常用命令 Terraform 对资源的管理主要是对资源生命周期的管理,即通过命令实现对Terraform模板中所定义资源的创建,修改,查看和删除。对这部分的讲解,在之前的文章《Terraform 一分钟部署阿里云ECS集群》的 #3.3 章节有过详细的介绍和代码的演示,大家可移步了解。本文只做基本的回顾。 1.1 terraform plan:资源的预览 plan 命令用于对模板中所定义资源的预览,主要用于以下几个场景: 预览当前模板中定义的资源是否符合管理预期,和Markdown的预览功能类似如果当前模板已经存在对应的state文件,那么 plan 命令将会展示模板定义与state文件内容的diff结果,如果有变更,将会展示结果并在下方显示出来对DataSource而言,执行 plan 命令,即可直接获取并输出所要查询的资源及其属性 1.2 terraform apply:资源的新建和变更 apply 命令用于实际资源的新建和变更操作,为了安全起见,在命令运行过程中增加了人工交互的过程,即需要手动确认是否继续,当然也可以通过 --auto-approve 参数来跳过人工确认的过程。apply 命令适用于以下几种场景: 创建新的资源通过修改模板参数来修改资源的属性如果从当前模板中删除某个资源的定义, apply 命令会将该资源彻底删除。可以理解为“资源的移除也是一种变更” 1.3 terraform show:资源的展示 show 命令用于展示当前state中所有被管理的资源及其所有属性值。 1.4 terraform destroy:资源的释放 destroy 命令用于对资源的释放操作,为了安全起见,在命令执行过程中,也增加了人工交互的过程,如果想要跳过手动确认操作,可以通过 --force 参数来跳过。terraform destroy 默认会释放当前模板中定义的所有资源,如果只想释放其中某个特定的资源,可以通过参数 -target=<资源类型>.<资源名称>  来指定。 1.5 terraform import:资源的导入 import 命令用于将存量的云资源导入到terraform…

Continue Reading

Terraform 是什么

作为本系列的引子,本文将从 Terraform 是什么开始介绍。 Terraform 是什么 如果两年前问 Terraform 是什么,国内熟悉它的人可能并不是很多,毕竟它是2014年的新生儿,提到资源编排,大家能优先想到的也是 AWS 的 CloudFormation,Azure 的 ARM 以及阿里云的 ROS。但是如果今天再问“Terraform 是什么”,相信很大一部分人对它不再陌生,并且一些公司或者感兴趣的开发者已经开始使用 Terraform 来管理他们的基础设施。不论是 Hashicorp 的官方宣传,还是阿里云云栖社区的布道;不论是 Devops的持续发展,还是云原生的火热传播;不论是国内最初只有阿里云支持,还是后来国内其他云厂商的陆续支持,Terraform 近两年在国内被越来越多的提及。 在此之前,不止一篇云栖文章介绍过Terraform是什么,本文将结合Terraform的官方文档,对这些文章中的介绍做一个整理和总结。 2014年,Hashicorp 公司推出了一款产品 Terraform Terraform 官方的定义如下: Terraform is a tool…

Continue Reading

Terraform 的几个关键概念

Terraform 关键概念 在使用Terraform的过程中,通常接触到很多名词,如configuration,provider,resource,datasource,state,backend,provisioner等,本文将一一跟大家介绍这些概念。 Configuration:基础设施的定义和描述 “基础设施即代码(Infrastructure as Code)”,这里的Code就是对基础设施资源的代码定义和描述,也就是通过代码表达我们想要管理的资源。 # VPC 资源 resource "alicloud_vpc" "vpc" { name = "tf_vpc" cidr_block = "172.16.0.0/16" } # VSwitch 资源 resource "alicloud_vswitch" "vswitch" { vpc_id =…

Continue Reading
Close Menu