在测试厨房中加载模块时出错
Error while loading modules in test-kitchen
我是测试厨房的新手,我正在尝试使用我之前使用 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 = "************"
}
当我尝试 运行
bundle exec kitchen verify
我在加载模块时遇到错误。
-----> 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/
目录应该是 directory
属性中的相对路径。像这样:
directory: modules/vpc
同样在新发布的 kitchen-terraform v3.0.0 中你应该使用 root_module_directory
而不是 directory
关于相关主题,我建议您阅读 getting started 指南以帮助理解如何进行测试装置,因为我认为您正试图通过 main.tf
和 modules directory
.
我会这样组织代码:
tf_aws_cluster
├── .kitchen.yml
├── Gemfile
├── Gemfile.lock
├── README.md
│ ├── test
| |── fixtures
| |── my_module
│ ├── main.tf
│ └── variables.tf
├── main.tf
|── variables.tf
.kitchen.yml
---
driver:
name: terraform
directory: test/fixtures/my_module
variable_files:
- variables.tf
provisioner:
name: terraform
根main.tf:
# this should have your actual Terraform code
resource ... {
...
}
测试夹具main.tf (test/fixtures/my_module/main.tf)
# this should have a module reference to your root's main.tf such as:
module "vpc" {
source = "source = "../../.."
env = "prod"
aws_account_id = "************"
}
我是测试厨房的新手,我正在尝试使用我之前使用 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 = "************"
}
当我尝试 运行
bundle exec kitchen verify
我在加载模块时遇到错误。
-----> 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/
目录应该是 directory
属性中的相对路径。像这样:
directory: modules/vpc
同样在新发布的 kitchen-terraform v3.0.0 中你应该使用 root_module_directory
而不是 directory
关于相关主题,我建议您阅读 getting started 指南以帮助理解如何进行测试装置,因为我认为您正试图通过 main.tf
和 modules directory
.
我会这样组织代码:
tf_aws_cluster
├── .kitchen.yml
├── Gemfile
├── Gemfile.lock
├── README.md
│ ├── test
| |── fixtures
| |── my_module
│ ├── main.tf
│ └── variables.tf
├── main.tf
|── variables.tf
.kitchen.yml
---
driver:
name: terraform
directory: test/fixtures/my_module
variable_files:
- variables.tf
provisioner:
name: terraform
根main.tf:
# this should have your actual Terraform code
resource ... {
...
}
测试夹具main.tf (test/fixtures/my_module/main.tf)
# this should have a module reference to your root's main.tf such as:
module "vpc" {
source = "source = "../../.."
env = "prod"
aws_account_id = "************"
}