提问人:b_a9f 提问时间:12/6/2022 最后编辑:b_a9f 更新时间:12/6/2022 访问量:525
GitHub 如何在将 terraform 文件移动到文件夹而不是根目录后找到它们
how does GitHub find terraform files after moving them to a folder, instead of root directory
问:
我有这个GitHub存储库:
_
|_ .github/workflows/myworkflow.yaml
|_ terraform/terraformInFolder.tf
|_ terraformInRootDir.tf
我的工作流程运行 terraform bash 脚本,如 terraform apply、vaidate 等......
它只能运行根目录中的 .tf 文件。我找不到运行文件夹中文件的方法。
我尝试使用但无法与 一起使用。with: path:
with
run
这是我的工作流程:
name: deployment-workflow
on: push
jobs:
terraform_apply:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Verify Terraform version
run: terraform --version
- name: Terraform init
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: terraform init -input=false
- name: Terraform validation
run: terraform validate
- name: Terraform apply
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: terraform apply -auto-approve -input=false
如何在文件夹中包含我的 .tf 文件的路径?
答:
0赞
Drumor
12/6/2022
#1
您可以使用参数
-chdir=<文件夹位置>
重定向 Terraform 的执行。我将你的代码更新为:
name: deployment-workflow
on: push
jobs:
terraform_apply:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Verify Terraform version
run: terraform --version
- name: Terraform init
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: terraform -chdir="./terraform" init -input=false
- name: Terraform validation
run: terraform -chdir="./terraform" validate -no-color
- name: Terraform apply
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: terraform -chdir="./terraform" apply -auto-approve -input=false
0赞
Nick K9
12/6/2022
#2
Terraform 不希望你使用这样的目录来分解你的模块。模块中的所有文件都松散地位于模块文件夹的顶层。在您提供的 中,您的根模块只包含一个文件:.子目录将被忽略。tree
terraformInRootDir.tf
如果要添加结构,可以通过创建子模块来实现。子模块的文件位于子目录中,但您必须通过指定路径和传递输入变量在代码中声明子模块。
您可以在文档中详细了解 Hashicorp 建议您如何构建存储库。
评论