• terraform 常用命令


    文件目录

    provider.tf provider(提供者) 配置
    terraform.tfvars 配置 provider 要用到的变量
    varable.tf 通用变量
    resource.tf 资源定义
    data.tf 包文件定义
    output.tf 输出
    

    常用命令

    创建配置文件

    mkdir terraform
    

    验证*.tf目录中是否没有其他文件,因为Terraform会加载所有文件。

    初始化工作目录

    terraform init
    terraform init -input=false
    

    初始化,会执行几个操作
    如果设置了 -from-module 会拷贝来源 module 到当前文件夹, 支持 remote path (http/git)
    Child Module Installation: 获取所有依赖的 module
    Backend Initialization: 初始化 backend,默认使用 local, backend 是扩展 terraform的一种方式,可以分为两种
    Standard: 很多云厂商实现了这种,用于存储 state 文件
    Enhanced: 处理存储 state 文件,还可以执行,比如plan, apply
    安装插件 (Plugin): 主要是 providers, 获取的时候会根据名字去 registry.terraform.io 查找信息,安装

    创建执行计划

    terraform plan
    

    计划执行,会生成可能的新 state 并和旧state 做比较,输出计划
    加载 backend
    load config, 生成一个 Operation, OperationTypePlan 并执行
    Plan 操作调用 terraform.Context 执行,生成一个 terraform.Graph, 这时候的 graph builder 是一个 PlanGraphBuilder
    Build graph的操作由几个 GraphTransformer 组成,比如 ConfigTransformer 创建配置中的 Resource, LocalTransformer add local values, OutputTransformer 增加输出
    Walk terraform.Graph: walkOperation 为 walkPlan, walk 操作会有多个 goroutine (vertex两倍数量) 并发执行(考虑依赖关系)
    Walk 对每个 vertex 执行 EnterPath,EnterEvalTree 等操作
    每个 vertex 如果能 Eval,会被 Evaluation

    创建一个计划并将其保存到本地文件中tfplan

    terraform plan -out=tfplan -input=false
    

    检查当前状态

    terraform show
    

    执行计划

    terraform apply
    

    应用存储在文件中的计划tfplan

    terraform apply -input=false tfplan
    

    应用计划自动批准

    terraform apply -input=false -auto-approve
    

    释放资源

    terraform destroy
    

    多环境部署

    terraform workspace select QA
    
  • 相关阅读:
    mac下免费的动态截屏制图工具:kap
    ssh端口转发实现socket5代理上网
    Linux上查看node和node_modules所在位置
    elasticsearch索引和快照清理:es curator
    npm运行报错:Error: ENOSPC: System limit for number of file watchers reached
    第二章 : 微服务环境搭建
    第一章 :微服务的架构介绍发展
    超简单的 Docker部署 SpringBoot项目 步骤
    maven继承父工程统一版本号
    Maven史上最全的pom.xml详解
  • 原文地址:https://www.cnblogs.com/syavingcs/p/13355811.html
Copyright © 2020-2023  润新知