首页 > 其他分享 >Terraform - 初解Terraform - 状态

Terraform - 初解Terraform - 状态

时间:2024-08-23 11:28:11浏览次数:11  
标签:文件 本地 terraform 状态 State Terraform state 初解

Terraform State

Terraform可以根据state跟踪托管资源,默认文件存储在本地(local),可以使用backend定义远程的存储(remote)。
状态文件:terraform.tfstate、terraform.tfstate.backup

State文件

terraform.tfstate文件保存Terraform创建和管理的所有资源信息默认存放在执行Terraform命令的本地目录下。
执行Terraform命令时,Terraform将会利用该文件与当前目录下的配置文件做Diff比较。
如果出现不一致,Terraform将按照配置文件中的定义重新创建或者修改已有资源,直到没有Diff。
如果这个state文件损坏,Terraform 将认为已创建的资源被破坏或者需要重建(实际的云资源通常不会受到影响)。

本地state存在的问题

  • 缺乏灵活性:状态文件存储在本地,本地多人协作时不仅需要拷贝模板,还需要拷贝state文件,不便于团队成员协同;
  • 缺乏安全性:state存在敏感数据,缺乏数据的保护;当多人同时变更时,存在状态不一致导致基础设施风险;文件系统损坏会导致状态文件丢失;

Backend

  • Backend是存放State文件的载体
  • Backend 分为本地(local)和远程(remote)两类,默认为本地。
  • 也就是说,state文件可以存放在本地也可以存放在远端
  • state 文件放到远端的存储服务上可以实现state文件和模板代码的分离
  • 远程Backend具有lock机制,可以降低多人协作时对state的维护成本,同时保护敏感数据

有关State的命令

  • terraform refresh: 刷新当前State的内容,用于检测不一致的内容并更新状态文件,也就是再次拉取最新的数据写入到state文件中。
  • terraform import :用于将资源导入到terraform state中,进而加入到Terraform的管理
  • terraform state : 用来操作状态文件
terraform state list  按照 <资源类型>.<资源名称> 的格式列出当前state中存在的所有资源
terraform state show  按照Key-Value的格式展示出特定资源的所有属性及其值,格式为 terraformstate show <资源类型>.<资源名称>
terraform state pull  获取当前state内容并展示
terraform state rm  将state中的某个资源移除,但实际上并不真正删除这个资源

标签:文件,本地,terraform,状态,State,Terraform,state,初解
From: https://www.cnblogs.com/anliven/p/18375647

相关文章

  • Vue状态管理库Pinia详解
    Pinia是Vue的状态管理库,它提供了一种更简单、更不规范的API来管理应用的状态。Pinia的设计哲学是简单性和易用性,它避免了Vuex中的许多复杂概念,如mutations和模块的嵌套结构,提供了一种更现代、更符合Vue3CompositionAPI风格的状态管理方式。先来瞅一眼Pinia的核......
  • Terraform - 初解Terraform - 函数
    Functions函数https://developer.hashicorp.com/terraform/language/functionsTerraform语言包括许多内置函数,可以从表达式中调用这些函数来转换。函数调用的一般语法是函数名后跟括号中以逗号分隔的参数:function(arg1,arg2)数值函数-max()获取最大值-min()获取最小......
  • 力压Transformer,详解Mamba和状态空间模型
    大家好,大型语言模型(LLMs)之所以能够在语言理解与生成上取得巨大成功,Transformer架构是其强大的支撑。从开源的Mistral,到OpenAI开发的闭源模型ChatGPT,都采用了这一架构。然而技术的探索从未止步,为进一步提升LLMs的性能,学界正在研发能够超越Transformer的新架构。其中,Mamba模型以......
  • 并发编程[3]_java线程的六种状态
    java线程状态1.操作系统进程的五种状态网上找了一张图:2.java线程的六种状态Thread类中getState()方法可以获取线程的状态,返回值是Thread类中的enum类型,取值有NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED六种状态。java的线程状态将阻塞状态细分为BLOCKED,WAITING......
  • Terraform - 初解Terraform - 变量
    Variable变量Terraform运行时会读取工作目录中所有的*.tf,*.tfvars文件,所有变量不应在单个文件中去,应分类在不同的文件中。通过variables.tf文件集中管理变量通过variable关键字声明变量的名称、类型、默认值等在同一个模块的所有变量中必须是唯一的可以从环境变量或者文......
  • Terraform - 初解Terraform - 语法
    Terraform配置文件配置文件支持两种格式HCL(HashiCorpConfigurationLanguage)、JSONHCL格式后缀名以.tf结尾,JSON格式后缀名以.tf.json结尾HCL格式更加人性化,支持“//”注释,并且是大多数Terraform文件通常推荐的格式JSON格式适用于机器创建,修改和更新,也可以由Terraform操作员......
  • Terraform - 初解Terraform - 厂商
    云厂商资源1.配置云厂商访问控制:人员访问权限、API访问权限、秘钥等2.配置云厂商对应的provider3.定义云厂商资源4.申请云厂商资源创建配置文件对所有资源的代码描述都需要定义配置文件中,用于Terraform加载和解析,建议分类创建结构化的配置文件,例如version.tf:required_pro......
  • Terraform - 初解Terraform - 命令
    调试terraformfmt格式化当前目录的tf文件内容格式,并列出已进行格式化的文件列表-diff选项,显示格式更改的差异-recursive选项,在所有子目录递归执行terraformvalidate验证配置的语法有效性,检查和定位错误出现的详细位置和原因-json选项,以json格式显示结果默认在当前目录......
  • Terraform - 初解Terraform - 安装
    开发环境配置Note:安装环境为windows系统64位笔记本电脑1.安装适用于Windows的Terraform:https://developer.hashicorp.com/terraform/install2.下载Terraform:https://releases.hashicorp.com/terraform/1.9.4/terraform_1.9.4_windows_amd64.zip3.从下载中,将可执行文件......
  • Terraform - 初解Terraform - 简介
    前言云计算主要提供计算服务,例如服务器、存储、数据库、网络等等;对于云服务,通常只需使用多少支付多少,从而帮助降低运营成本,使基础设施更有效地运行,并能根据业务需求的变化调整对服务的使用。公有云:多租户面向个人或企业由第三方云服务商托管和运营。私有云:专供一个企业......