当前位置: 首页 > 知识库问答 >
问题:

terraform架构体系在本地运行,在aws codemipeline上构建和部署会出错

康言
2023-03-14

我已经使用terraform创建了我的aws基础设施。基础设施包括创建弹性beanstalk应用程序应用程序负载平衡器、s3、dynamodb、vpc子网和vpcendpoint。

aws基础设施使用terraform命令在本地运行,如下所示:

terraform init
terraform plan -var-file="terraform.tfvars"
terraform apply -auto-approve -var-file="terraform.tfvars"

terraform.tfvars包含区域、实例类型、访问键等变量。

我想使用aws代码管道自动化这个地形基础设施的构建和部署过程。我怎样才能完成这项任务?要遵循哪些步骤?在哪里保存terraform.tfvars文件?在特定的代码构建角色中指定哪些角色。自动审批的手动流程如何?

我的方法:codecmit/github的整个过程,codebuild,code部署ie(codemipeline)是通过aws控制台进行的,我从github开始作为源代码,它正在工作(github回购包括我用于构建aws架构体系的terraform代码),然后对于codebuild,我需要指定env变量和buildspec.yml文件,这就是问题所在,我有terraform.tfvars做这项工作,但在这里我需要在buildspec.yml文件中完成。

问题:我不知道如何在buildspec.yml文件中指定terraform.tfvars凭据以及要指定哪些环境变量?我也知道我们需要在codebuild项目中指定角色,但是如何有效地指定它们呢?如何在s3中也存储地形状态?

共有1个答案

江鸿羲
2023-03-14

-我怎样才能完成这项任务?

使用CodeCommit存储您的地形代码,使用CodeBuild运行地形规划,使用Terraform apply等,使用CodePipeline连接CodeCommit和CodeBuild。

遵循什么步骤?

网上有很多教程。以此为例:https://medium.com/faun/terraform-deployments-with-aws-codepipeline-342074248843

在哪里保存terraform.tfvars文件?

理想情况下,您应该为开发环境创建一个terraform.tfvars,如terraform.tfvars.dev,为生产环境创建另一个terraform.tfvars.prod。在代码构建环境中,使用环境变量选择文件。

在特定的代码构建角色中指定哪些角色?

您的代码生成角色需要具有创建、列出、删除和更新资源的权限。基本上,在一项服务中,它几乎涵盖了一切。

自动审批的手动流程如何?

通常,您在一个代码构建环境中使用terraform plan来显示环境中的更改,并且在手动批准后,您在另一个代码构建环境中执行terraform apply-auto approve。检查上面的教程,它显示了如何创建此。

 类似资料:
  • 我想在heroku上有一个tilestream,我遵循了教程,我做了完全相同的事情,并不断得到一个构建/编译错误。 刚刚添加了2个文件和一个目录: Procfile: 包裹json: 空的/平铺方向。 当通过git推送到heroku时,我得到以下错误: 当我去网站时,我得到了错误(检查这里) 我还检查了日志: 以及在heroku上运行的进程: 对于这个例子,我没有将地图上传到./ware目录,但是

  • 恐怕我是个新手,有一些新手问题。 一段时间以来,我一直将python用于简单的脚本和自动化,但我正在挑战自己,通过为GitHub上的一些开源项目做出贡献来深入研究。 在这样一个公共环境中犯愚蠢的错误很有趣,但也很伤脑筋。 有时我的一项更改会导致错误,该错误会被提交PR时GitHub项目运行的自动测试之一捕获。如果可能,我想在提交PR之前自己捕获这些。有没有办法让我在自己的机器上本地运行相同的构建测

  • SOAR主要由语法解析器,集成环境,优化建议,重写逻辑,工具集五大模块组成。下面将对每个模块的作用及设计实现进行简述,更详细的算法及逻辑会在各个独立章节中详细讲解。 语法解析和语法检查 一条SQL从文件,标准输入或命令行参数等形式传递给SOAR后首先进入语法解析器,这里一开始我们选用了vitess的语法解析库作为SOAR的语法解析库,但随时需求的不断增加我们发现有些复杂需求使用vitess的语法解

  • 部署架构上采用三台机器,一个Master接受写请求,两个Slave进行数据同步,三台机器上都部署sentinel(一般为奇数个,因为需要绝大部分进行投票才能failover)。(官方示例)具体架构如下图: 注意:如果有条件可以将sentinel多部署几个在客户端所在的应用服务器上,而不是与从节点部署在一起,这样避免整机宕机后sentinel和slave都减少而导致的切换选举sentinel无法超过

  • 在本章中,我们将讨论Apache Solr的架构。 下图显示了Apache Solr的体系结构的框图。 Solr架构 - 构件块 以下是Apache Solr的主要构建块(组件) 请求处理程序 - 发送到Apache Solr的请求由这些请求处理程序处理。请求可以是查询请求或索引更新请求。根据这些请示的要求来选择请求处理程序。为了将请求传递给Solr,通常将处理器映射到某个URI端点,并且它将为指

  • 十构建部署 待更新……