我尝试使用 Proxmox 进行 Terraform,效果很好。尝试通过自托管 github runner 来学习和利用 GitHub 操作功能
name: LCX_2
on:
workflow_dispatch:
env:
PM_API_URL: ${{ secrets.PM_API_URL }}
PM_API_TOKEN_ID: ${{ secrets.PM_API_TOKEN_ID }}
PM_API_TOKEN_SECRET: ${{ secrets.PM_API_TOKEN_SECRET }}
ROOT_CT_PASSW: ${{ secrets.ROOT_CT_PASSW }}
PM_TLS_INSECURE: ${{ secrets.PM_TLS_INSECURE }}
jobs:
terraform:
runs-on: "self-hosted"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Terraform Init
id: init
run: terraform init
- name: Terraform Plan
id: plan
run: terraform plan -no-color
按照计划,即使我已经在存储库中设置了秘密,它也会出错。任何人都可以指导或指出参考,请
with provider["registry.terraform.io/terraform-for-proxmox/proxmox"],
on provider.tf line 12, in provider "proxmox":
12: pm_api_url = var.pm_api_url
Planning failed. Terraform encountered an error while generating this plan.
在 shell 环境中为 Terraform 变量的输入分配值需要在键前添加
TF_VAR_
。 文档中有一个关于此的简短部分。因此 GH Actions 配置文件中的 env
键需要相应的前缀。另外,键中存在大小写错误,它们全部是大写,而根据错误消息,声明的变量是小写:
env:
TF_VAR_pm_api_url: ${{ secrets.PM_API_URL }}
TF_VAR_pm_api_token_id: ${{ secrets.PM_API_TOKEN_ID }}
TF_VAR_pm_api_token_secret: ${{ secrets.PM_API_TOKEN_SECRET }}
TF_VAR_root_ct_passw: ${{ secrets.ROOT_CT_PASSW }}
TF_VAR_pm_tls_insecure: ${{ secrets.PM_TLS_INSECURE }}
我假设所有环境变量都映射到声明的 Terraform 输入变量,类似于错误消息中显示的变量,因为问题中缺少声明配置。请勿修改任何不正确的键。