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

天翼云_亚马逊云计算服务名称叫什么_便宜的

小七 141 0

使用GitHub和Terraform的版本控制基础设施

在HashiCorp,我们构建开源工具,使组织能够为任何应用程序提供、保护和运行任何基础设施。其中一个工具是Terraform。Terraform使您能够安全和可预测地编写、计划和提供基础设施作为代码。它将api编码成可在团队成员之间共享的声明性配置文件,作为代码处理、编辑、审阅和版本控制。»地形工作流下面是一个Terraform配置示例,用于在Digital Ocean上配置实例,并使用CloudFlare将该实例的IP地址分配给DNS记录。资源"digitalocean_droplet""web"{name="tf web"size="512mb"image="ubuntu-16-04-x64"区域="sfo1"}资源"cloudflare_record""web"{域="哈希科普岩石"name="演示"value="${数字海洋_droplet.web.ipv4\u地址}"类型="A"}Terraform自动处理操作顺序并在可能的情况下并行化操作。这种并行化可以在几分钟甚至几秒钟内提供非常大的基础设施。Terraform还可以执行一个计划(dry run),以便在执行更改之前计划和可视化更改的影响。这在修改现有的基础设施时更为有利,这样您就可以轻松地理解推出的影响。$地形图+云闪_记录.web域:"哈希科普岩石"主机名:""name:"演示"代理:"假"ttl:""类型:"A"价值:"${digitalocean_droplet.web.ipv4\u地址}"区域标识:""+数字海洋_水滴网磁盘:""图片:"ubuntu-16-04-x64"计算的ipv4地址:""ipv4_地址_专用:""ipv6_地址:""ipv6_address_private:""锁定:""名称:"tf web"地区:"sfo1"调整磁盘大小:"真"大小:"512mb"状态:""vCPU:""计划:2表示添加,0表示更改,0表示销毁。一旦满意,我们就可以应用这些更改,创建真正的生产基础设施。$terraform应用数字海洋_水滴网:正在创建。。。磁盘:"=>""图片:"=>"ubuntu-16-04-x64ipv4_地址:"=>""ipv4_address_private:"=>""ipv6_地址:"=>""ipv6_address_private:"=>""锁定:"=>""名称:"=>"tf web地区:"=>"sfo1调整磁盘大小:""=>"真"大小:""=>"512mb"状态:"=>""vCPU:"=>""数字海洋_水滴网:仍在创建。。。(经过10秒)数字海洋_水滴网:仍在创建。。。(经过20秒)数字海洋_水滴网:仍在创建。。。(经过30秒)数字海洋_水滴网:创建完成云闪_记录.web:正在创建。。。域:"=>"哈希科普岩石"主机名:""=>""名称:"=>"演示"代理:"=>"假ttl:"=>""类型:"=>"A值:"=>"192.241.218.201区域\ id:"=>""云闪_记录.web:创建完成申请完成!资源:添加了2个,更改了0个,销毁了0个。»Terraform Pro用于协作terraformcli非常适合个人、业余爱好项目和小型团队,但是与大多数CLI工具一样,如果没有集中的协调系统,它往往不能很好地伸缩。目标是在整个团队中进行安全、可预测和透明的基础设施更改,而不考虑协作者的数量。这种挑战并不是Terraform独有的。事实上,Git也面临同样的问题。Git是管理源代码管理的优秀工具,但缺乏对团队、权限、acl和报告的支持。就像GitHub填补了Git的这些需求一样,Terraform Pro也填补了Terraform的空白。Terraform Pro是Terraform,就像GitHub对Git一样Terraform Pro是为团队设计的,用于协作和组织许多Terraform状态、配置、模块和变量。这种协作的核心是我们与GitHub等版本控制系统的集成,将基础设施作为代码配置,并将其转化为任何提供商上的实际基础设施。»使用GitHub的Terraform工作流在我们使用标准OAuth工作流将Terraform Pro连接到GitHub之后,GitHub可以自动通知Terraform Pro版本控制软件(VCS)层的代码更改。这些以webhook形式出现的变更通知会自动触发计划阶段。Terraform Pro控制Terraform的版本、入口和出口权限,并安全地存储和管理提供者凭证。这里的代码与上一个示例中的代码相同,但是现在它被提交到一个连接到Terraform Pro的GitHub存储库中。我们可以通过使用OAuth对GitHub进行身份验证,并向Atlas提供访问该存储库的信息,从而将GitHub代码存储库链接到Atlas。链接之后,当在这个存储库上创建新的分支时,Terraform Pro将自动对配置更改执行一次试运行,并通过Pull请求将结果报告给GitHub。下面是一个示例GitHub Pull请求,它显示Terraform Pro当前正在执行更改的计划阶段。计划完成后,Terraform Pro将向GitHub报告结果。假设更改有效并将成功应用,将显示一个绿色的复选标记。点击details链接将我们带到Terraform Pro,在那里我们可以看到精确的计划输出,就像我们在终端本地运行Terraform一样。我们组织的其他成员可以看到这个计划,他们可以在terraformpro或GitHub中提供反馈。假设这些更改被批准,我们可以在GitHub上合并代码。这将自动触发Terraform Pro上的新计划,并通过Slack、email或其他一些通知方法通知相关方。一旦计划到达默认(主)分支,就可以确认它,这将执行Terraform的apply阶段。这将改变真正的基础设施。当我们点击"确认并应用"时,Terraform Pro将执行和修改云上的真实基础设施资源。正如预期的那样,如果Terraform计划失败,可能是由于语法错误或无效的权限,一个红色的X将可见,GitHub将警告我们合并这些更改。»一致的工作流程将基础设施视为代码的好处之一是,我们可以利用应用程序开发人员多年来使用的工具、工作流和技术。因为我们的整个基础设施都包含在纯文本文件中,所以我们可以很容易地利用Git和GitHub等工具来控制我们的Terraform配置。结合Terraform Pro,我们能够在Terraform配置上应用持续集成。HashiCorp之道的第一个原则是工作流,而不是技术。虽然Terraform本身是一种技术,但它的目标是提供一种机制,以一种技术不可知的方式安全和可预测地更改基础设施,而不管您是设计人员、开发人员、系统管理员还是非技术贡献者。通过与GitHub集成,所有用户都能够利用GitHub流。技术用户可以使用他们已经熟悉的Git和CLI工具,因此我们不会限制它们,也不会给它们增加额外的开销。技术含量较低的用户可以直接在浏览器中使用GitHub流,而无需安装Git、Terraform或其他支持工具。这种低门槛的进入使组织能够快速迁移到版本控制的基础架构,而前提知识几乎为零。»摘要与GitHub的集成有助于展示Terraform版本控制基础设施的价值。除了提供一个单一的、熟悉的视图,Terraform用户可以查看其更改的状态和影响,集成还带来了对基础设施更改的持续集成和测试。一致的GitHub工作流与HashiCorp的目标非常吻合,HashiCorp的目标是为任何应用程序提供一个与技术无关的工作流,以提供、保护和运行任何基础设施。虽然集成并非没有技术挑战,但最终这些挑战被我们用户的熟悉度、安全性和信任的好处所压倒。如果您没有使用Terraform,您现在可以从Terraform网站下载它。如果您已经在使用Terraform,那么现在就可以开始免费试用Terraform Pro,并开始使用GitHub集成!