Ошибка terraform init - git должен быть доступен и в PATH - PullRequest
0 голосов
/ 28 января 2019

У меня возникла проблема при запуске terraform init / get.

Ошибка, которую я получаю:

Error downloading modules: Error loading modules: error downloading 'ssh://git@github.com/etc etc': git must be available and on the PATH

Путь github правильный, отлично работает на другой машине.

Git отлично работает, он тоже в PATH.TF_LOGs пусты.Работаем над Ubuntu.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Я не знаю, решили ли вы свою проблему или нет, но я столкнулся с той же проблемой, а затем решил ее.Обмен ответом в случае, если кому-то еще нужна помощь.

Для справки я столкнулся с этой проблемой на

  • Ubuntu 18.04
  • Linux Ubuntu 4.15.0-45-generic
  • Terraform v0.11.11 Rev 216, установленный через Snap

Ошибка происходит из файла terraform/vendor/github.com/hashicorp/go-getter/get_git.go функции Get.Первое, что пытается сделать эта функция, это следующий вызов

if _, err := exec.LookPath("git"); err != nil {
   return fmt.Errorf("git must be available and on the PATH")
}

. Это заставляет искать все папки, перечисленные в пути, для файла с предоставленным именем, в данном случае git.Я создал и выполнил скрипт go, который делает тот же вызов, и он вел себя как ожидалось, находя git без ошибок.

После этого я удалил terraform из оснастки и загрузил исполняемый файл прямо с сайта Hashicorp.Когда я запустил ту версию исполняемого файла, которая все еще была v0.11.11, она работала без проблем.Это заставляет меня поверить, что ошибка связана с тем, как Snap запускал исполняемый файл или модель разрешений для приложений, установленных с помощью Snap.

TL; DR: Удалите версию с установленной SnapTerraform и вместо этого скачать и использовать двоичный файл Hashicorp.

0 голосов
/ 16 мая 2019

Удалите snap установленную версию Terraform и загрузите и используйте двоичный файл Hashicorp.

0 голосов
/ 29 января 2019

Согласно документации terraform ,

Для проектов github.com, для клонирования по SSH, используйте следующую форму
:

module "consul" {
  source = "git@github.com:hashicorp/example.git"
}

ДляПроизвольные репозитории Git используют специальный префикс git ::

module "storage" {
  source = "git::ssh://username@example.com/storage.git"
}

Также проверьте, правильно ли настроен Config ~/.ssh/config для вашей учетной записи на github:

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...