【问题标题】:Terraform Azure Devops Create fw rulesTerraform Azure Devops 创建固件规则
【发布时间】:2020-08-20 03:09:02
【问题描述】:

用 terraform + azure devops 流程的组合绞尽脑汁,想办法解决这个问题的最佳策略是什么,

我有 3 个阶段,构建和部署一些 terraform 代码

  • 第 1 阶段构建: 单个服务,例如sql server, database, app service terraform plan 神器文件夹路径:terraform\phase1\main.tf .... etc
  • Stage2 部署: 来自 stage1 terraform apply 的工件
  • Stage3 构建和部署管道:通过 tfstate 后端使用 data "azurerm_app_service" "this" 从部署的 azure 应用服务中获取 outbound ip addresses,并将这些添加到 sql server firewall allowed ip's 文件夹路径:terraform\phase2\main.tf .... etc.

当我查看仅定义数据输出和 fw 规则的资源创建的阶段 2 文件夹时,我的问题出现在 Stage3,尽管我们正在查看相同的后端状态文件,但 terraform 计划看不到任何创建的资源stage2 在文件夹中,因此计划销毁它。

在 Phase2 文件夹中,我的代码看起来像这样

data "azurerm_app_service" "tf_dr_awa_core-app" {
  name                = "dr-core-app"
  resource_group_name = "dr-app"
}

resource "azurerm_sql_firewall_rule" "tf_dr_sql_server_firewall" {
  count               = length(split(",", data.azurerm_app_service.tf_dr_awa_core-app.possible_outbound_ip_addresses))
  .....
}

有没有人遇到过类似的情况,您必须首先构建基础架构的核心部分,一旦他们在状态文件中有元数据,然后获取该数据并在核心部分之间构建管道,在本例中是 sql server 和应用服务?

【问题讨论】:

  • 你检查是否已经通过SQL服务器中的阶段创建了fw规则?
  • Ammm,当 terraform 开始在 stage3 上进行构建时,它实际上说它将在 stage2 应用并仅添加 fw 规则时销毁,但我只希望它添加 fw 规则,并将其他所有内容从第一阶段和第二阶段
  • 我很困惑,为什么第 2 阶段会摧毁它们?是舞台常见的动作吗?或者你如何设置它们?可以分享一下 YAML 文件吗?
  • 下面是 Terraform 的文件夹布局 ` └───tf-dr ├───phase1 │ │ main.tf │ │ provider.tf │ │ variables.tf │ └───phase2 │ main.tf │ provider.tf │ variables.tf ` Pipeline Process - Stage1 构建 Phase1 - Stage2 等待 Stage1 中的应用完成并构建针对 a - 资源的 Phase2 和与 Stage1 相同的状态文件只是为了提取应用服务的 IP - Stage3 从 Stage2 抓取构建并应用它
  • 在问题中编辑 YAML 消息,而不是在评论中。对社区来说更清楚。

标签: azure-devops terraform terraform-provider-azure


【解决方案1】:

现在我已经回答了关于 Stage3 的问题,我只针对特定资源,因此它不关心 Phase2 文件夹中最初在 Stage2 中从 Phase1 文件夹中创建的所有其他缺失项

文件夹布局:

─tf-dr
    ├───phase1
    │      main.tf
    │      provider.tf
    │      variables.tf
    └───phase2
           main.tf
           provider.tf
           variables.tf

流水线布局

  • Stage1 构建 Phase1
  • Stage2 等待 Stage1 中的应用完成,并针对资源和与 Stage1 相同的状态文件构建 Phase2 以提取应用服务的 IP
  • Stage3 从 Stage2 抓取构建并应用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2019-07-17
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    相关资源
    最近更新 更多