### terraform cloud 简介 ### 1. Terraform Cloud - 免费远程状态管理,状态管理是terraform每一次对资源进行管理以后,所保存的最近一次操作的时间、各资源的相关属性、各变量的当前值、状态文件的版本等内容,下一次再操作的时候,terraform首先会把当前状态文件与云服务商上的状态进行一次更新,找出是否后有被删除或者更改了的资源,然后再根据.tf文件,决定那些资源需要删除、更新、创建。操作完成后,会重新生成一个状态文件。状态文件的完整性对terraform的正常运行至关重要,如果它的状态不对,那有可能会造成terraform对所管理的云资源状态造成误判,并据此进行误操作。对于terraform开源版的现有用户来说,状态文件缺省是在本地目录保存的。这意味着多个团队成员使用terraform管理通一套云资源时,需要很小心的管理该文件的读写状态,以免多个团队成员对同一文件进行操作。这个问题在同一个团队管理多套云资源的时候就更加复杂了,如果没有几个自动化机制来保证,那就很难避免人工误操作。 2. 解决方案 ,引入远程状态管理。远程状态管理支持多种后台,本文介绍的是如何通过Terraform Cloud实现远程状态管理。通过Terraform Cloud进行远程状态管理后,单个用户再也不需要在本地管理状态文件,团队之间也不再需要关心共享的问题,Terraform Cloud会自动处理这些事情。 Terraform Cloud是Hashicorp Terraform的SaaS版本。为了方便广大开源用户,2019年5月Hashicorp决定将Terraform Cloud的远程状态管理功能免费开放给开源版用户 ### 总结 ### 1. Terraform cloud 就是一个saas,提供远程的服务,这个服务就是帮你执行terraform plan,apply,destroy等cli命令,然后同时维护tfstate的状态自动归属vcs管理(版本控制管理),也可以对workspace进行加锁,排他式的执行这个workspace,以防止多个用户通知执行命令更新state ## 注册并且配置terraform cloud ## 1. 注册用户 https://app.terraform.io/ 2. 收到邮件后激活 3. 创建organization 3.1 connect to a version control provier 比如链接到一个github上的项目上授权访问,比如一个项目下面有main.tf 4. 可以manually执行terraform cli命令 也可以在settings 手动 destory等命令