在 Terraform 中使用外部数据源调用 Bash 脚本时出现问题 [英] Issue while calling Bash script using External data source in Terraform

查看:33
本文介绍了在 Terraform 中使用外部数据源调用 Bash 脚本时出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有外部数据源,即调用 bash 脚本.

I have External data source , that is calling the bash script .

Main.tf : 

 resource "aws_ami_from_instance" "QA-ami" {
 name               = "QA-ami"
 source_instance_id = "i-00f4*****75**a"
 }

 resource "aws_instance" "QA-server-via-ami" {
 ami = aws_ami_from_instance.QA-ami.id
 instance_type = var.qa_instance_type
 subnet_id = var.qa_subnet_id
 key_name = var.qa_key_name
 }

 data "external" "instance_status" { //line  38

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

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

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

Bash 脚本:

#!/bin/bash

set -e

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

sleep 600

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

但是当我运行 terraform apply 时,出现以下错误:

But when i am running terraform apply , i am getting below error :

错误:无法执行bash":bash:./check_instance_status.sh:没有那个文件或目录

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

在 main.tf 第 38 行,在数据external"中实例状态":38:数据外部"实例状态"{

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

我的 bash 脚本存在于/check_instance_status.sh 中,但仍然出现错误.

My bash script is present in /check_instance_status.sh , still i am getting error .

请帮助我.

推荐答案

直接在

program = ["bash", "/path/to/check_instance_status.sh"]

这篇关于在 Terraform 中使用外部数据源调用 Bash 脚本时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆