Terraform Azure Devops 创建固件规则

Terraform Azure Devops Create fw rules

我苦思冥想 Terraform + azure devops 流程的组合,并想出解决这个问题的最佳策略,

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

当我查看 phase2 文件夹时,我的问题出现在第 3 阶段,该文件夹仅定义了 fw 规则的数据输出和资源创建,尽管我们正在查看相同的后端状态文件,但 terraform plan 看不到任何资源在文件夹中的 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 服务器和应用程序服务?

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

文件夹布局:

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

管道布局

  • 阶段 1 构建阶段 1
  • Stage2 等待 Stage1 中的应用完成并构建针对资源的 Phase2 和与 Stage1 相同的状态文件,只是为了提取应用程序服务的 IP
  • Stage3 从 Stage2 获取构建并应用它