2017-11-28 16 views
0

私はキッチンをテストするのが初めてで、前にterraformを使用して作成した既存のvpcモジュールを使用しようとしています。私はキッチンをテストするためにモジュールをロードする際に問題があります。テストキッチンでモジュールをロード中にエラーが発生しました

マイフォルダ構造は

tf_aws_cluster 
├── .kitchen.yml 
├── Gemfile 
├── Gemfile.lock 
├── README.md 
│ ├── modules 
| |── vpc 
│  ├── main.tf 
│  └── variables.tf 
├── main.tf 
|── variables.tf 

--- 
driver: 
    name: terraform 

provisioner: 
    name: terraform 
    directory: ~/tf_aws_cluster/modules/vpc 
    variable_files: 
    - variables.tf 

私の〜/ tf_aws_cluster/main.tfファイルが見えます〜/ tf_aws_cluster/.kitchen.ymlファイルのように見えます

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

ディレクトリは相対的でなければなりませんようにエラーを与えますあなたのdirectory属性のパス。このように:あなたは、関連トピックに関するroot_module_directory代わりのdirectory


を使用する必要があり、新しくリリースされたkitchen-terraform v3.0.0でも

directory: modules/vpc

、私は方法を理解するのに役立つgetting startedガイドを通過推薦しますテストフィクスチャを行うには、main.tfmodules directoryで達成しようとしていると思います。

Iは、次のようなコードを整理することになる。

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(テスト/フィクスチャ/ 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 = "************" 
} 
関連する問題