Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
terraform env::没有这样的文件或目录_Terraform - Fatal编程技术网

terraform env::没有这样的文件或目录

terraform env::没有这样的文件或目录,terraform,Terraform,无法初始化Terraform模块,甚至无法检查版本 $ ls main.tf output.tf variables.tf $ terraform --v env: 22:58:10: No such file or directory $ rm -rf .terraform && terraform init env: 23:43:38: No such file or directory 但是,terraform安装正确 $ which terraform /usr/

无法初始化Terraform模块,甚至无法检查版本

$ ls
main.tf  output.tf  variables.tf
$ terraform --v
env: 22:58:10: No such file or directory
$ rm -rf .terraform && terraform init 
env: 23:43:38: No such file or directory
但是,terraform安装正确

$ which terraform
/usr/local/bin/terraform
TerraformShell脚本的内容

$ cat /usr/local/bin/terraform
#!/bin/bash

#set -x
DEFAULT_VERSION="0.12.24"

if [[ -z "$VERSION" ]]; then
        TF_VERSION="$DEFAULT_VERSION"
else
    TF_VERSION="$VERSION"
fi

VADDR=$(grep 'provider "vault"' *.tf --exclude-dir=modules -A2 | grep -P --color -o '(?<=address = ")(.*)(?=")')
if [ -n "$VADDR" ]; then
  #echo "got vault addr $VADDR"
  VAULT_CONFIG="VAULT_TOKEN=$(unset VAULT_TOKEN && VAULT_ADDR=$VADDR viq tokengen)"
  #echo "got vault token $VAULT_CONFIG"
else
  VAULT_CONFIG="dummyfoo=dummybar"
fi

env $VAULT_CONFIG /opt/terraform/v${TF_VERSION}/terraform $@ 2>&1 | \
  sed -r -e 's/([ ]+)result:([ ]+)"[[:alnum:][:punct:]]+" => \
  <computed>/\1result:\2<redacted> => <computed>/' \
  -e 's/([ ]+)MasterUserPassword:([ ]+)"[^"]+"/\1MasterUserPassword:\2<redacted>/' \
  | sed -r -e 's/"10MySqlPassword".*/"10MySqlPassword" = "****" -> <redacted>/g' \
  | sed -r -e 's/API_KEY".*/API_KEY" = "****" -> <redacted>/g'
$cat/usr/local/bin/terraform
#!/bin/bash
#集合x
默认版本=“0.12.24”
如果[-z“$VERSION”];然后
TF_VERSION=“$DEFAULT_VERSION”
其他的
TF_VERSION=“$VERSION”
fi
VADDR=$(grep'provider“vault”'*.tf--exclude dir=modules-A2 | grep-P--color-o'(?)\
/\1结果:\2=>/'\
-e的/([]+)主用户密码:([]+)“[^”]+“/\1MasterUserPassword:\2/”\
|sed-r-e的/“10MySqlPassword”。*/“10MySqlPassword”=“****”->/g”\
|sed-r-e的/API_键“*/API_键”=“*****”->/g”

这里有什么问题?

请检查
/usr/local/bin
是否在
$PATH
中。
$PATH
变量告诉系统在哪里查找已安装的文件

$echo$PATH
如果它不在
$PATH
中,则将目录添加到
$PATH

$export PATH=$PATH:/usr/local/bin
将上述行添加到
~/.bashrc
(或等效文件)文件中以保持更改

如果它在您的路径中,则通过在指定可执行文件的完整路径的同时尝试检查版本来查看
terraform
是否工作

$/usr/local/bin/terraform--v

谢谢!我的$PATH变量已经包含安装路径
$echo$PATH/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/atlantiq/.local/bin:/home/atlantiq/bin
我也尝试了完整路径,仍然看到相同的问题
$/usr/local/bin/terraform--v env:02:40:08:没有这样的文件或目录ry
此外,同一父目录下的另一个模块已正确配置terraform。我过去曾手动删除此模块提供的一些自动缩放组,可能是此问题背后的原因。这确实是一个非常令人困惑的错误。我猜这是指名为
env
的程序,即av在大多数Unix系统上可用,这些系统“在修改过的环境中运行程序”"。您系统上的名称
terraform
是否包含在shell别名中,或者
/usr/local/bin/terraform
是一个包装shell脚本,而不是terraform二进制文件本身?是的,env是打印当前环境变量的程序。terraform不包含在shell别名中,它是一个包装shell脚本。我认为它应该是hel如果你能分享你的包装器外壳脚本的内容,请告诉阅读此问题的人。据我所知,此错误来自该外壳脚本,而不是Terraform本身。当然。在问题描述中已更新。我不确定你正在运行的
viq tokengen
程序是做什么的,但我猜也是这样h您所期望的令牌还打印出一个日志行(或类似内容),以时间戳开始,如
23:43:38
,然后作为
$VAULT\u CONFIG
的一部分包含,然后
env
将该时间戳解释为要运行的命令。