terraform env :: Нет такого файла или каталога - PullRequest
0 голосов
/ 03 апреля 2020

Невозможно инициализировать модуль 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

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

В чем здесь проблема?

1 Ответ

0 голосов
/ 03 апреля 2020

Пожалуйста, проверьте, если /usr/local/bin в вашем $PATH. Переменная $PATH env сообщает вашей системе, где искать установленные файлы.

$ echo $PATH

Если ее нет в вашем $PATH, добавьте каталог в ваш $PATH.

$ export PATH=$PATH:/usr/local/bin

Добавьте указанную выше строку в ~/.bashrc (или эквивалентный) файл, чтобы сохранить изменение.

Если оно находится на вашем пути, то посмотрите, работает ли terraform, попытавшись проверить версия с указанием полного пути к исполняемому файлу.

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