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

专属服务器_问道数据库_是什么

小七 141 0

Terraform模块与GitHub操作的持续集成

使用代码在基础设施项目上协作可能会带来一些挑战,例如测试、配置连续集成和部署管道。这些东西有助于确保软件是稳定的,并且能够更快地发布。这些挑战扩展到Terraform模块,这些模块可以帮助您在组织中共享Terraform配置。在这篇文章中,我们将了解如何配置一个持续集成管道,以帮助使用Github操作测试和协作Terraform模块。»GitHub操作GitHub操作使用户能够根据事件配置操作,例如将请求和合并到存储库。此特性可用于在GitHub中管理的Terraform模块,而不必依赖外部工具。GitHub操作依赖于YAML工作流文件来指定要执行的步骤。Terraform模块的典型工作流包括Terraform init和Terraform validate命令。init命令初始化模块并下载所需的任何提供程序。validate命令有助于验证模块中的配置文件,对于常规验证非常有用。现在,让我们看看如何使用GitHub动作工作流文件来构造这个工作流。在/.github/workflows处创建新的工作流文件/工作流.yaml在GitHub存储库的根目录中。工作流文件的内容如下:名称:Terraform CI开:拉取请求:分支机构:-主人工作岗位:验证:名称:验证运行于:ubuntu latest步骤:-名称:退房代码用途:动作/结帐@v1-名称:运行Terraform init使用:docker://hashicorp/terraform:0.12.11有:入口点:地形args:初始化-名称:运行Terraform验证使用:docker://hashicorp/terraform:0.12.11有:入口点:地形args:验证首先,我们将工作流命名为"Terraform CI"。接下来,我们指定此工作流应在针对主分支打开的请求请求事件时触发。然后,我们定义在此工作流期间要运行的每个步骤。在本例中,我们使用预定义的签出操作来检索存储库中包含的代码。在检索了存储库的内容之后,我们指定了使用dockerhub中的terraform容器执行terraform init和terraform validate命令的步骤。通过使用这些步骤,我们可以在Github中初始化和验证Terraform模块的语法,而无需设置额外的工具。团队可以在模块上进行协作,并通过持续集成工作流推送到存储库。»连续试验除了验证Terraform代码外,我们还可以扩展此工作流,以合并模块的自动化测试。当多个开发人员在一个模块上协作时,这一点尤为重要,并有助于持续验证模块是否按预期执行。现在我们更新了我们的示例,添加了一个步骤来执行用Terratest实现的单元测试,Terratest是一个Golang库,用于针对Terraform运行测试。名称:Terraform CI开:拉取请求:分支机构:-主人工作岗位:验证:名称:验证运行于:ubuntu latest步骤:#为清楚起见,省略了步骤-名称:设置Go 1.13用途:动作/安装开始@v1有:go版本:1.13id:开始-名称:获取依赖项运行:|如果[-f哥帕克·托姆];然后卷曲https://raw.githubusercontent.com/golang/dep/master/install.sh|什dep确保其他的去-v-t-d。/。。。金融机构-名称:试验工作目录:/home/runner/work/terratest demo/terratest demo/test运行:进行测试与上一节类似,我们使用setup go操作引导Golang环境来准备单元测试。接下来,我们下拉测试代码的依赖关系,以便执行go-test。在运行测试之前,我们切换到包含测试文件的目录,该目录位于/home/runner/work/{repository name}/{repository name}»GitHub状态检查为了确保潜在的破坏性配置不会影响稳定的Terraform模块,我们保护主分支不会将pull请求与失败的检查合并。我们转到GitHub存储库上的"设置"选项卡并选择"分支"部分。我们选择"在合并之前需要通过状态检查",然后选择由GitHub操作工作流创建的状态检查。最后,单击"创建"保存分支保护规则。这将确保在检查通过之前无法完成请求。»结论在这篇文章中,我们讨论了GitHub Actions如何为Terraform模块实现灵活的本地连续集成管道,而不需要依赖外部工具。Github操作使我们能够在集成对Terraform模块配置的更改时验证语法、测试资源并维护其质量。要了解更多关于GitHub操作的信息,请参阅官方文档。