make的terraform apply命令时出现Terraform错误

时间:2017-11-12 01:50:06

标签: ansible terraform

当我terraform plan -var-file=../variables.tfvars时 传递所有好处

然后我运行terraform apply -var-file=../variables.tfvars

给我这个错误,我不知道如何解决这个问题,因为目录的路径是正确的。

  

错误:应用计划时出错:
  发生1个错误:
  * aws_instance.mongodb_server:发生1个错误:
  *错误运行命令'睡眠60&& export ANSIBLE_HOST_KEY_CHECKING = False&&回声" [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' ;:退出状态127.输出:/ bin / sh:2:ansible-playbook:not found

代码如下:

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

1 个答案:

答案 0 :(得分:1)

  

输出:/ bin / sh:2:ansible-playbook:not found

这是你的实际错误。 Terraform计划不会捕获此错误,因为terraform计划不会评估local-exec命令。

您是否在试图运行上述terraform的机器上安装了ansible?如果已安装,它是否在路径上。

如果尚未安装,请尝试installing ansible。如果已经安装了ansible,请在local-exec命令中执行echo $PATH并确认给定路径中是​​否存在ansible。

相关问题