无法初始化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
Terraform Shell脚本的内容
$ 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'
这是什么问题?
答案 0 :(得分:0)
请检查/usr/local/bin
中是否包含$PATH
。 $PATH
env
变量告诉您的系统在哪里查找已安装的文件。
$ echo $PATH
如果它不在您的$PATH
中,则将该目录添加到您的$PATH
中。
$ export PATH=$PATH:/usr/local/bin
将以上行添加到您的~/.bashrc
(或等效文件)中以保留更改。
如果它在您的路径中,则通过在指定可执行文件的完整路径时尝试检查版本来查看terraform
是否正常工作。
$ /usr/local/bin/terraform --v