2017-11-12 1 views
-1

Terraforming machen Wenn ich terraform plan -var-file=../variables.tfvars tun Pass alle gutTerraforming Fehler bei der Anwendung Befehl

Aber dann laufe ich terraform apply -var-file=../variables.tfvars

geben Sie mir diesen Fehler, und ich weiß nicht, wie dies zu lösen, weil der Pfad des Verzeichnisses ist richtig.

Error: Error applying plan:
1 error(s) occurred:
* aws_instance.mongodb_server: 1 error(s) occurred:
* Error running command 'sleep 60 && export ANSIBLE_HOST_KEY_CHECKING=False && echo "[mongodb] 54.193.20.170" > /tmp/inventory.ws && ansible-playbook -i /tmp/inventory.ws -e "mongodb_password=blahblah" -e "mongodb_user=admin" -u ec2-user -b --private-key=../BASE/files/joujou.pem ../DATABASE/files/ansible-mongodb-standalone/mongodb.yml': exit status 127. Output: /bin/sh: 2: ansible-playbook: not found

Der Code ist wie:

resource "aws_instance" "mongodb_server" { 

    instance_type = "${lookup(var.mongodb_instance_type_control, 
    var.target_env)}" 
    vpc_security_group_ids = 
    ["${aws_security_group.default_internal.id}"] 
    ami = "${lookup(var.amazon_ami_by_location, var.aws_region)}" 
    key_name = "${var.key_name}" 
    subnet_id = "${data.aws_subnet.subnet_a.id}" 

    tags { 
     Name = "tf-mongodb-${lookup(var.environment, var.target_env)}" 
    } 

    associate_public_ip_address = true 

    provisioner "local-exec" { 
    command = "sleep 60 && export ANSIBLE_HOST_KEY_CHECKING=False && echo \"[mongodb]\n${aws_instance.mongodb_server.public_ip}\" > /tmp/inventory.ws && ansible-playbook -i /tmp/inventory.ws -e \"mongodb_password=${var.mongodb_default_password}\" -e \"mongodb_user=${var.mongodb_default_username}\" -u ec2-user -b --private-key=../BASE/files/joujou.pem ../DATABASE/files/ansible-mongodb-standalone/mongodb.yml" 
} 

Antwort

0

Output: /bin/sh: 2: ansible-playbook: not found

dies Ihr tatsächlicher Fehler ist. Terraform Plan erfasst diesen Fehler nicht, da lokale Exec-Befehle nicht von Terraform-Plan ausgewertet werden.

Haben Sie an der Maschine, auf der Sie die oben genannte Terraform ausführen möchten, ein Mobilgerät installiert? Und wenn installiert, ist es auf dem Weg.

Versuchen Sie , wenn es nicht bereits installiert ist. Wenn ansible bereits installiert ist, führen Sie einen echo $PATH in Ihrem local-exec-Befehl aus und bestätigen Sie, ob ansible im angegebenen Pfad vorhanden ist.

+0

arbeitet Anshu tabk Sie –

+0

Bitte akzeptieren Sie die Antwort @JuliaLamenza –

Verwandte Themen