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

云主机_阿里智能云路由器重置_企业0元试用

小七 141 0

使用Terraform云运行触发器创建基础设施管道

HashiCorp Terraform为从业者提供了一种简单的方法,可以将其基础设施定义为代码,作为更广泛的应用程序管道的一部分,或者通过自动化流程来管理。然而,应用程序管道和基础设施管道的预期行为方式一直存在差异。今天,我们很高兴发布runtriggers的beta版:这个特性包含了这些差异,并将Terraform Cloud推向了创建成熟的基础设施管道的道路上。需要注意的是,由于这是一个beta特性,所以目前不建议将其用于生产,但我们希望您能借此机会对其进行测试并给出反馈。»什么是跑动触发器?Terraform云运行触发器提供了一种简单、可编程的方式来将工作区链接在一起。这使您可以跨工作区自动运行,从而在定义和管理基础结构时实现更高级别的灵活性。运行触发器是通过在您是其管理员的工作区上设置源工作区来配置的。通过这样做,您是说,每当源工作区有一个成功应用的运行时,您都希望自动启动自己的运行。这要求您对自己的工作区具有管理权限,并且至少对源工作区具有只读访问权限。您还可以使用配置文件中的terraform_remote_状态数据源从这些其他工作区检索输出,确保您在每次运行中始终具有最新的值。我们稍后会更详细地讨论这个问题。»我为什么要用它们?好问题。Terraform是关于可组合的基础设施的,作为代码,模块、配置和提供者都可以协同构建并被任何人使用。运行触发器将同样的方法引入工作区,并且在您希望不同的基础结构部分在更改依赖的基础结构时自动对运行进行排队的任何地方都很有用。这可能有很多原因。一些示例可能包括:支持跨团队协作—考虑数据库和web团队在更改基础结构时可能一起工作的方式。安全目的—中央安全团队需要跨多种资源类型进行更改。与应用程序管道保持一致-将Terraform云工作区分解为更小、更可重用的组件,以实现更大的应用程序交付。»如何构建自己的运行触发器?开始使用运行触发器非常简单!在本指南中,我们假设您已经配置了Terraform云帐户和几个工作区。在本例中,我们将使用3个工作区,每个工作区都由GitHub VCS存储库支持。有关将工作区链接到VCS存储库的更多信息,请参阅上一篇博客文章。如果您愿意,我们将用于这些工作区的存储库链接在下面。最后我还将提供这些链接,稍后我们将回顾存储库的内容和功能。地形随机整数:https://github.com/vaficionado/terraform-random-integer地形随机分隔符:https://github.com/vaficionado/terraform-random-separator地形随机宠物:https://github.com/vaficionado/terraform-random-pet首先,登录Terraform Cloud。您将看到您的工作区已列出。这些工作区名称需要解释一下。在本例中,我们将使用random pet resource类型,它生成一个随机宠物名字符串。但是作为一个转折点,我们将从生成一个随机整数开始,这个整数决定宠物名字中各个单词之间的分隔符长度,以及名字本身的长度。在进一步讨论之前,让我们先看看terraform random integer工作区的代码。很简单。它只生成一个长度在1-10位数之间的整数并将其输出为整数。因为这是运行触发器链的基础,所以现在不需要查看这个工作区。接下来,让我们看看terraform随机分隔符配置的作用。这是另一个简单的配置。它配置两个名为organization和length workspace的变量,并使用这些变量连接到使用terraform_remote_state数据源类型的远程后端。然后它使用来自该数据源的值生成一个随机字符串,并将该字符串作为分隔符输出。最后,我们来看看地形随机宠物本身。这只是建立在上一个示例的基础上,我们现在创建了与前面相同的两个变量,并添加了分隔符工作区。然后,配置将创建terraform_remote_state数据源的两个实例,分别为前面的每个工作区创建一个实例。然后,它使用先前工作区中的整数和分隔符值作为名称的一部分,生成实际的随机_pet名称作为输出pet。现在我们了解了配置是如何设计的,让我们回到运行触发器配置。打开terraform随机分隔符工作区,并检查其变量。在这里,您可以在配置中定义这些变量的值。在本例中,我将组织设置为jschulman-runtriggers1,将length工作区设置为terraform random integer。接下来,单击"设置">"运行触发器"选项以打开"运行触发器配置"视图。从下拉列表中选择源工作区。在本例中,我们将选择terraform random integer并单击addworkspace。注意,在这个列表中,您只能看到至少有读访问权限的工作区,选择器不允许您创建任何无限循环:例如,工作区1触发器在工作区2中运行,而工作区2触发器在工作区1中运行。您也不会看到任何已添加为源的工作区。选择此选项意味着任何在terraform random integer中成功应用的运行都将自动启动terraform random separator。注意这里的黄色和蓝色方框也很重要。记住,这个特性目前处于测试阶段,我们不建议您在生产中使用它。此外,如果在工作区中设置了自动应用,则无论运行触发器启动运行时的自动应用设置如何,都需要手动干预。这确保了工作区所有者仍然可以控制来自外部的更改是否会影响他们。一旦您保存了这个配置,单击terraform random宠物工作区的变量,并配置这些值,如下图所示。它们与前一个工作区中的相同,只是为分隔符工作区添加了一个值。现在,在这个工作区中构建另一个运行触发器,只是这次选择terraform随机分隔符工作区作为源。您会注意到,我们没有将这个工作区连接到terraform random integer,即使它使用来自该工作区的输出。这是因为我们在这里建立了一个事件链,其中所需的输出已经存在,我们将直接使用terraform_remote_state查询它。就这样!你的三级跑步触发链现在已经完成,可以测试了。回到terraform random integer工作区,单击Queue plan,输入原因,然后单击紫色Queue plan按钮开始运行。一旦计划完成,你会看到这样的情况。您的计划输出可能会根据您是否有现有资源而有所不同,但重要的是在计划本身下,您可以看到其他工作区的列表,这些工作区中会有自动运行排队。在这种情况下,地形随机分隔符将自动启动。单击这些工作区名称将显示该工作区的运行列表。一旦您对计划满意,请单击"确认并应用",输入原因,然后确认计划。运行结束后,返回"工作区"视图。现在,您应该看到下一个工作区正处于计划阶段,或者可能已经在等待确认以应用运行。在本例中,链接的terraform随机分隔器工作区已经在等待我们的确认,以应用新的计划。单击进入工作区并确认此计划。当它完成时,同样的事情也会发生在你的terraform随机宠物工作区,所以让我们打开这个工作区和等待运行。这一次,让我们看看运行本身中提供的一些附加细节。您可以看到哪个工作区触发了自动运行,GitHub配置提交的详细信息,以及通常的运行详细信息数组。深入查看计划阶段,您还可以看到,在本例中,长度是在terraform random integer中运行的结果。类似地,在terraform随机分隔符中运行的结果更新了分隔符。确认并应用最后一次运行,然后等待输出。啊,谁能忘记自己儿时心爱的宠物……我本以为终究有用的严老板蚕?那么,名字里有什么呢?现在,您应该了解如何使用新的runtriggers beta将Terraform云工作区链接在一起。»资源如果您要查找我们用于本指南的存储库,可以通过以下链接访问它们:地形随机整数:https://github.com/vaficionado/terraform-random-integer地形随机分隔符:https://github.com/vaficionado/terraform-random-separator地形随机宠物:https://github.com/vaficionado/terraform-random-pet非常感谢Krista在这里的基础知识库,以及她在这个特性上的所有伟大工作。如果您想直接向Terraform Pipelines团队提供有关此功能的反馈,请通过电子邮件联系我们:tf-pipeline@hashicorp.com我们很想听到你的消息!»入门首先,注册一个免费的Terraform云帐户。或者,要了解更多信息,请参阅我们的文档,了解如何链接特定的VCS提供商,或者访问HashiCorp learn平台,查看Terraform今日的实际应用。