zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    RESTful API 设计原则
    c#的逆变和协变
    Java内部类之间的闭包和回调详解
    java的内部类
    抓包工具
    HashMap与HashTable的区别
    Java 语法清单
    Java面试问题列表
    bootstrap table api
    c# CacheManager 缓存管理
  • 原文地址:https://www.cnblogs.com/syavingcs/p/13355811.html
Copyright © 2011-2022 走看看