我是测试厨房的新手,我正在尝试使用我之前使用terraform创建的现有vpc模块。我在将模块加载到测试厨房时遇到了问题。
我的文件夹结构如
tf_aws_cluster
├── .kitchen.yml
├── Gemfile
├── Gemfile.lock
├── README.md
│ ├── modules
| |── vpc
│ ├── main.tf
│ └── variables.tf
├── main.tf
|── variables.tf
〜/ tf_aws_cluster / .kitchen.yml文件
---
driver:
name: terraform
provisioner:
name: terraform
directory: ~/tf_aws_cluster/modules/vpc
variable_files:
- variables.tf
我的〜/ tf_aws_cluster / main.tf文件看起来像
module "vpc" {
source = "../modules/vpc"
env = "prod"
aws_account_id = "************"
}
当我尝试运行时
捆绑exec厨房验证
我在加载模块时遇到错误。
-----> Creating <default-ubuntu>...
Copying configuration from "/home/ubuntu/tf_aws_cluster"...
Upgrading modules...
Error downloading modules: Error loading modules: module vpc: failed to get download URL for "../module/vpc": 200 OK resp:<!DOCTYPE html>
我应该在模块的配置文件下传递的值是什么?
我试过给出源参数的完整路径〜/ tf_aws_cluster / main.tf
source = "~/tf_aws_cluster/modules/vpc/"
这给我一个错误
Error downloading modules: Error loading modules: module vpc: invalid source string: ~/tf_aws_cluster/modules/vpc/
答案 0 :(得分:1)
目录应该是directory
属性中的相对路径。像这样:
directory: modules/vpc
同样在新发布的kitchen-terraform v3.0.0中,您应该使用root_module_directory
代替directory
在相关主题上,我建议您浏览getting started指南,以了解如何使用main.tf
和{{1}来完成测试设备的操作}。
我会这样组织代码:
modules directory
.kitchen.yml
tf_aws_cluster
├── .kitchen.yml
├── Gemfile
├── Gemfile.lock
├── README.md
│ ├── test
| |── fixtures
| |── my_module
│ ├── main.tf
│ └── variables.tf
├── main.tf
|── variables.tf
root main.tf:
---
driver:
name: terraform
directory: test/fixtures/my_module
variable_files:
- variables.tf
provisioner:
name: terraform
测试夹具main.tf(test / fixtures / my_module / main.tf)
# this should have your actual Terraform code
resource ... {
...
}