前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云Terraform应用指南(二)

腾讯云Terraform应用指南(二)

原创
作者头像
生态产品团队
修改2019-08-06 16:56:22
5.3K0
修改2019-08-06 16:56:22
举报
文章被收录于专栏:生态产品生态产品

摘要

上一篇文章中,我们已经成功安装、配置了腾讯云Terraform应用环境,并实践了利用Terraform简单易用的CLI在虚拟网络(VPC)下部署腾讯云服务器(CVM)。以IaC的方式编排云资源,不仅提高了部署速度和效率,还保证了配置的一致性,节约成本。

既然是IaC,那就要熟练的掌握应用过程中需要用到的指令,本文及后面的几篇文章将向大家详细介绍Terraform Commands,帮助用户熟悉每一个命令,助力腾讯云Terraform应用。

一、Terraform Commands Overview


Terraform是通过一个非常容易使用的命令行界面(CLI)来控制的,并且有且仅有一个命令行程序:terraform进行管理。输入terraform,可以看到当前版本可用的子命令列表,如applyplan等。同时,terraform也响应-hhelp,输入terraform -hterraform help也可以查看所有可用命令。

Terraform Commands
Terraform Commands

查看Terraform版本和Provider的接口版本信息,比对官网腾讯云Terraform官方GitHub所提供的最新版本,以便随时更新

查看当前版本信息
查看当前版本信息

二、Environment Variables


Terraform引用了一些环境变量来控制部分功能,这些环境变量都不是必需的,但是可以改变一些Terraform的默认行为,帮助用户适配更多应用场景

1、日志

操作日志是重要的运维信息来源,用户可以通过设置日志类型TF_LOG和日志保存路径TF_LOG_PATH,将详细的日志打印到stderr,以获取调试信息。TF_LOG支持五种可用值,TRACEDEBUGINFOWARNERROR,分别代表五种不同的日志级别,其中TRACE表示最详细的日志。

    // Config log
    $ export TF_LOG=Debug
    $ export TF_LOG_PATH=./terraform.log
设置日志级别和保存路径
设置日志级别和保存路径
查看日志文件
查看日志文件
日志详细内容
日志详细内容

有关日志的更多信息请点击这里

2、变量

variable是Terraform重要的配置文件类型之一,通过对变量的集中管理,用户可以在资源文件中直接引用变量名进行赋值

创建variable.tf文件,配置可用区参数的默认值ap-guangzhou-1

    // variable.tf
    variable "default_az" {
        type = string
       default = "ap-guangzhou-1"
    }
variable.tf
variable.tf

这样在资源配置文件中,availability_zone参数可以直接调用var.default_az

创建一个腾讯云服务器
创建一个腾讯云服务器

也可以利用TF_VAR_name把变量设置在环境变量中

    // Config variable
    $ export TF_VAR_region=ap-guangzhou-1

配置TF_INPUT,可以关闭对未指定值的变量的提示。将刚才的variable.tf中设置的参数删除

删除所有参数
删除所有参数

执行Terraform指令,会要求写入参数值

提示为variable赋值
提示为variable赋值

设置TF_INPUTfalse0,再次执行指令,系统报错:未指定变量的值

    // Config input
    $ export export TF_INPUT=0
报错:未指定变量的值
报错:未指定变量的值

3、CLI Config File

用户可以通过CLI的配置文件对CLI进行一些设置,适用于所有Terraform的工作目录,与资源配置文件是区分开的。

这个配置文件存放的位置根据主机环境的不同有所差异,Linux和Mac系统中文件必须命名为.terraformrc,并直接放在相关用户的主目录中。Windows用户相关信息请查看这里

配置文件中支持的参数有:

① 是否开启更新与安全检查:disable_checkpoint

② 允许更新与安全检查,但禁止使用匿名id删除警告消息:disable_checkpoint_signature

③ 启用插件缓存,以字符串的形式指定插件缓存目录的位置:plugin_cache_dir

④ Terraform企业版凭证:credentials

可以在环境变量中配置CLI Config File的位置

    // Location of the Terraform CLI configuration file
    $ export TF_CLI_CONFIG_FILE="$HOME/.terraformrc-custom"

三、Commands Introduction Episode 1


本节将详细介绍每一个具体的指令,包括如何使用和可能遇到的问题

1、apply

terraform apply 用于应用所需的更改,以达到所需的配置状态,同时执行结果会保存在本地状态文件terraform.tfstate中。

标准语法:terraform apply [options] [dir-or-plan]

  • options用来填写apply的flags
  • dir-or-plan用来指定配置计划或计划的路径

dir-or-plan

在当前目录只配置provider.tf,不添加任何资源文件,执行terraform apply,显示没有任何资源被部署

在当前目录执行apply操作
在当前目录执行apply操作

在当前目录执行terraform apply ./tencentcloud命令,创建在/tencentcloud目录的资源文件将被部署

    // Deploy the configuration plan under the tencentcloud directory
    $ terraform apply ./tencentcloud
在当前目录执行
在当前目录执行

options

  • -backup=path - 备份文件的路径,设置为-时表示禁用

默认情况下备份文件自动保存在当前目录的.backup中,为-backup赋值-时,将不再保存备份文件

    // Disabled by setting to "-"
    $ terraform apply -backup=-
默认保存的备份文件
默认保存的备份文件

删除terraform.tfstate.backup,执行terraform apply -backup=-,不再自动保存备份

不再自动保存备份文件
不再自动保存备份文件
  • -auto-approve - 跳过部署计划前的审批过程,直接创建资源
    // Skip interactive approval of plan before applying
    $ terraform apply -auto-approve
跳过交互环节直接创建
跳过交互环节直接创建
  • -no-color - 禁用输出时字符的颜色
    // Disables output with coloring
    $ terraform apply -no-color
带有颜色的输出
带有颜色的输出
变成默认字符颜色
变成默认字符颜色
  • -parallelism=n - 限制并发操作的数量,默认是10
    // Limit the number of concurrent operation
    $ terraform apply -parallelism=5
  • -refresh=true - 在计划和应用之前,更新每一个资源的状态
    // Update the state for each resource prior to planning and applying
    $ terraform apply -refresh=true
  • -state=path - 状态文件的路径,默认为terraform.tfstate
    // Path to the state file
    $ terraform apply -state=./test_state
默认保存的状态文件
默认保存的状态文件

删除terraform.tfstate,执行terraform apply -state=./test_state,将状态文件保存在当前文件夹下的test_state

状态文件被保存在test_state中
状态文件被保存在test_state中

有关apply指令的更多信息,请点击这里

2、console

terraform console提供了一个用于评估和验证表达式的交互控制台。

标准语法:terraform console [options] [dir]

  • options用来填写console的flags
  • dir用来指定要使用的目录,默认为当前目录
    // Evaluating and experimenting with expressions
    $ echo "1 + 2" | terraform console
计算表达式
计算表达式

有关console指令的更多信息,请点击这里

3、destroy

terraform destroy用于销毁terraform管理的基础设施。

标准语法:terraform destroy [options] [dir]

  • options用来填写destroy的flags
  • dir用来指定要使用的目录,默认为当前目录

options

  • -auto-approve - 同apply命令中的-auto-approve,跳过销毁计划前的审批过程,直接销毁资源
    // Destroy confirmation will not be shown
    $ terraform destroy -auto-approve

有关destroy指令的更多信息,请点击这里

4、fmt

terraform fmt用于将terraform配置文件重写为规范格式和样式,确保文件的一致性。在升级Terraform之后,建议您在模块上预先运行Terraform fmt,使之前的文件适配新版本。

标准语法:terraform fmt [options] [dir]

  • options用来填写fmt的flags
  • dir用来指定要使用的目录,默认为当前目录

options

  • -list=false - 不列出格式不一致的文件
    // Don't list the files containing formatting inconsistencies
    $ terraform fmt -list=false
不列出格式不一致的文件
不列出格式不一致的文件
  • -diff - 显示格式更改的差异
    // Display diffs of formatting changes
    $ terraform fmt -diff

有关fmt指令的更多信息,请点击这里

四、写在最后


本期的Terraform命令介绍先到这里,后面几篇文章将继续给出其他命令的使用方式。请持续关注腾讯云+社区,生态产品专栏《腾讯云Terraform应用指南》系列,生态产品团队将持续帮助用户快速入门,熟练掌握Terraform应用技巧。

“Write, Plan, and create Infrastructure as Code" 让每一个腾讯云用户高效、快捷的部署资源。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 一、Terraform Commands Overview
  • 二、Environment Variables
    • 1、日志
      • 2、变量
        • 3、CLI Config File
        • 三、Commands Introduction Episode 1
          • 1、apply
            • dir-or-plan
            • options
          • 2、console
            • 3、destroy
              • options
            • 4、fmt
              • options
          • 四、写在最后
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档