迁移本地项目到TF CLOUD
之前文章我们尝试了在本地环境使用Terraform来创建和管理AWS Lightsail资源,对于管理一些云资源,我们需要在本地安装相应的CLI工具和配置访问相应云资源的凭据(例如AWS CLI, AccessKeyID等),Terraform通过调用本地的CLI工具或者云API来管理云资源的状态,其默认使用的是local类型的Backend,资源的状态文件(.tfstate)也是保存在本地文件目录中的。
这篇文章我们将尝试使用remote类型的Backend,将项目迁移到Terraform Cloud去执行,并且由Terraform Cloud来管理资源状态。
什么是Terraform Cloud Terraform Cloud 是一个管理Terraform在一致且可靠的环境中运行的SaaS应用,从而可以替换在本地机器是执行Terraform项目,其存储共享的状态和机密数据,并可以连接到版本控制系统(如 Git),使得我们可以在团队中将基础设施作为代码进行工作。
Terraform是一个商业应用,团队和商业使用将会收取费用并提供了更多的高级功能。但对于个人用户,可以免费使用基本的功能。关于费用和功能详情,可以参考 (https://www.hashicorp.com/products/terraform/pricing)。
首先我们需要注册一个Terraform Cloud的账号,访问 https://app.terraform.io/public/signup/account ,根据提示注册账号
注册完成后第一次登陆Terraform Cloud,其会询问如何开始一个项目,这里我们选择 Start from scratch,也就是将从一个空模板开始
接下来我们需要创建一个组织(Organization),例如这里我创建一个名为 learn-terraform 的组织,一个组织就类似要给命名空间,可以管理多个工作空间(Workspace),还可以管理其下工作空间共享的变量和环境变量。
接下来我们需要在本地环境登录Terraform Cloud,并添加相应的配置来重新初始化项目。
重新初始项目 完成了Terraform Cloud的账号注册之后,我们需要在本地终端运行 terraform login ,会打开浏览器来登录账号得到一个Token值,将其复制填入终端完成登录
> terrafrom login Terraform must now open a web browser to the tokens page for app.terraform.io. If a browser does not open this automatically, open the following URL to proceed: https://app.terraform.io/app/settings/tokens?source=terraform-login --------------------------------------------------------------------------------- Generate a token using your browser, and copy-paste it into this prompt.