在测试厨房中加载模块时出错

时间:2017-11-28 18:24:26

标签: devops 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 = "************"
}

当我尝试运行时

  

捆绑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/

1 个答案:

答案 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 ... {
  ...
}