2017-11-28 7 views
0

Ich bin neu in der Küche zu testen und ich versuche, die vorhandenen VPC-Module zu verwenden, die ich zuvor mit Terraform erstellt habe. Ich habe Probleme beim Laden der Module zum Testen der Küche.Fehler beim Laden von Modulen in Testküche

Meine Ordnerstruktur sieht aus wie

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

die ~/tf_aws_cluster/.kitchen.yml Datei

--- 
driver: 
    name: terraform 

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

meine ~/tf_aws_cluster/main.tf Datei sieht aus wie

module "vpc" { 
    source   = "../modules/vpc" 
    env   = "prod" 
    aws_account_id = "************" 
} 

wenn ich versuche zu laufen

Bündel exec Küche überprüfen

i einen Fehler beim Laden der Module immer bin.

-----> 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> 

, was die Werte i unter provisioner für das Modul passieren sollte?

Ich habe versucht, durch den vollständigen Pfad für den Parameter source geben ~/tf_aws_cluster/main.tf

source   = "~/tf_aws_cluster/modules/vpc/" 

das gibt mir einen Fehler als

Error downloading modules: Error loading modules: module vpc: invalid source string: ~/tf_aws_cluster/modules/vpc/ 

Antwort

1

Das Verzeichnis eine relative sein sollte Pfad in Ihrem directory Attribut. Wie folgt aus:

directory: modules/vpc

Auch in der neu kitchen-terraform v3.0.0 freigegeben sollten Sie root_module_directory statt directory


Auf einem verwandten Thema verwendet werden, würde ich empfehlen, durch die getting started Führung gehen zu helfen, zu verstehen, wie Testgeräte zu tun, das ist, was ich denke, Sie versuchen, mit main.tf und modules directory zu erreichen.

würde ich den Code als solche Organisation:

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 

die Wurzel main.tf:

# this should have your actual Terraform code 
resource ... { 
    ... 
} 

Die Prüfvorrichtung 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 = "************" 
} 
Verwandte Themen