我有一个 Github action 工作流程,概述了在 Azure 中启动 Terraform 创建资源的简单流程。我缺少的是如何整合 Terraform 状态文件,使得在工作流程的连续运行中,它应该将当前状态与 main.tf 文件进行比较,并仅允许净变化。目前,如果我连续运行它,第二次总是会失败,因为资源已经在 Azure 中创建。
如何配置下面的 Github 工作流程以允许 Terraform 状态文件的比较?我没有发现任何一种方法可以做到这一点。
Github 仓库布局:
Github action 工作流程:
如何配置下面的 Github 工作流程以允许 Terraform 状态文件的比较?我没有发现任何一种方法可以做到这一点。
Github 仓库布局:
![enter image description here](https://istack.dev59.com/ySyNY.webp)
name: Terraform deploy to Azur
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@master
- name: "Terraform Init"
uses: hashicorp/terraform-github-actions@master
with:
tf_actions_version: 0.12.13
tf_actions_subcommand: "init"
- name: "Terraform Plan"
uses: hashicorp/terraform-github-actions@master
with:
tf_actions_version: 0.12.13
tf_actions_subcommand: "plan"
args: -var="client_secret=${{ secrets.clientSecret }}"
-var="client_id=${{ secrets.clientId }}"
-var="tenant_id=${{ secrets.tenantId }}"
-var="sub=${{ secrets.sub }}"
- name: "Terraform Apply"
uses: hashicorp/terraform-github-actions@master
with:
tf_actions_version: 0.12.13
tf_actions_subcommand: "apply"
args: -var="client_secret=${{ secrets.clientSecret }}"
-var="client_id=${{ secrets.clientId }}"
-var="tenant_id=${{ secrets.tenantId }}"
-var="sub=${{ secrets.sub }}"