云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_数据库事务_怎么申请

小七 141 0

使用Terraform云远程状态管理

我们最近发布了terraform0.12和Terraform云远程状态管理。这两个版本都为Terraform用户提供了更好的编写和协作基础设施代码的体验。这篇博客文章将探讨一些使用Terraform云的动机,并描述它是如何工作的。»什么是地形状态?为了解释Terraform云的价值,理解Terraform中状态的概念是很重要的。Terraform使用state将Terraform代码映射到它提供的真实世界资源。例如,可以使用以下代码创建AWS EC2实例:资源"aws_instance""web"{ami="ami-e6d9d68c"实例_type="t2.micro"}在这个配置文件上运行terraform apply时,terraform将对AWS进行API调用以创建EC2实例,AWS将返回该实例的唯一ID(例如i-0ad17607e5ee026d0)。Terraform需要在某处记录该ID,以便以后可以调用API来更改或删除该实例。为了存储这些信息,Terraform使用一个状态文件。对于上述代码,状态文件如下所示:{..."资源":{"美国焊接学会_实例.web": {"type":"aws_实例","主要":{"id":"i-0ad17607e5ee026d0",...}在这里您可以看到资源aws_实例.web从Terraform代码映射到实例ID i-0ad17607e5ee026d0。»远程状态默认情况下,Terraform将其状态文件写入本地文件系统。这对个人项目很有效,但一旦你开始与团队合作,事情就会变得更具挑战性。在团队中,您需要确保每个人都有状态文件的最新版本,并确保两个人不会同时进行更改。远程状态解决了这些挑战。远程状态只是远程存储状态文件,而不是本地文件系统。通过远程存储单个状态文件,团队可以确保他们始终拥有最新的状态文件。使用远程状态,Terraform还可以在进行更改时锁定状态文件。这可以确保捕获所有更改,即使尝试并发更改也是如此。在Terraform中配置远程状态一直是一个复杂的过程。例如,您可以将状态存储在S3 bucket中,但是您需要创建bucket,正确配置它,设置权限,创建一个DynamoDB表以进行锁定,然后确保每个人都有适当的凭据来写入它。因此,当团队采用Terraform时,设置远程状态可能成为一个绊脚石。»使用Terraform Cloud轻松设置远程状态与其他需要复杂设置的远程状态解决方案不同,Terraform Cloud提供了一种简单的方法来启动远程状态:第0步-在这里注册Terraform云帐户步骤1 - 将向您发送电子邮件,请按照链接激活您的免费Terraform云帐户。步骤2 - 当您登录时,您将登录到一个页面,您可以在该页面上创建组织或在同事邀请下加入现有组织。步骤3 - 下一步,进入用户设置并生成令牌。步骤4 - 获取此令牌并创建一个本地~/.terraformrc文件:证书"app.terraform.io应用程序" {令牌="mhVn15hHLylFvQ.atlasv1啊哈……"}步骤5 - 配置Terraform云作为后端在Terraform项目中,添加Terraform块以配置后端:地形{后端"远程"{organization="my org"#步骤2中的组织名称。工作区{name="my app"#应用状态的名称。}}}第6步-运行terraform init,你就完成了。你的状态现在被存储在Terraform Cloud中。您可以在UI中看到状态:»全功能状态查看器Terraform Cloud提供了一个功能齐全的状态查看器,可以深入了解基础设施的状态:这将维护Terraform状态的版本,允许您在需要时下载旧版本。同样,它还提供了审核日志,以了解谁更改了什么内容以及何时更改了。您可以在每个时间点查看完整状态文件:您还可以看到变化的差异:»手动锁定terraformcloud还包括手动锁定状态的功能。如果您要对基础设施进行大的更改,并且希望防止同事在您工作过程中修改基础结构,则此功能非常有用。您可以直接在UI中锁定和解锁状态:当状态被锁定时,Terraform操作将收到一个错误:»结论我们很高兴为我们的用户提供Terraform云的远程状态管理。在此处注册帐户:https://app.terraform.io/signup