首页 > 解决方案 > 未能执行“bash”:bash:./instance_status.sh:没有这样的文件或目录

问题描述

我有一个 bash 脚本 instance_status.sh ,它具有所有访问权限,这个脚本放在 / 中,当我尝试执行它时会抛出以下错误

Error: failed to execute "bash": bash: ./instance_status.sh: No such file or directory

on main.tf line 38, in data "external" "instance_status":
38: data "external" "instance_status" {

重击脚本:

 #!/bin/bash

 set -e

 eval "$(jq -r '@sh "INSTANCE_ID=\(.id)"')"

sleep 360

status=$(aws ec2 describe-instance-status --instance-ids ${INSTANCE_ID} --output json --query 
'InstanceStatuses[0]')

instance_status=$(echo ${status} | jq -r '.InstanceStatus.Details[0].Status')
system_status=$(echo ${status} | jq -r '.SystemStatus.Details[0].Status')

jq -n --arg inst_status "$instance_status" \
  --arg sys_status "$system_status" \
  '{"instance_status":$inst_status,"system_status":$sys_status}'

我从 terrafrom main.tf 文件下面调用 bash 脚本:

data "external" "instance_status" {

program = ["bash", "${path.module}/instance_status.sh"]

query = {
id = aws_instance.QA-server-via-ami.id
}
}

output "test" {
value = data.external.instance_status.result
}

你能帮忙吗?

标签: bashshellterraformterraform-provider-aws

解决方案


“这个脚本放在/”所以使用绝对路径:

/instance_status.sh

推荐阅读