Обработка аутентификации ssh / https с помощью репозиториев bitbucket, используемых в качестве источника модуля - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь использовать модуль Terraform, который у меня есть в отдельном хранилище частных модулей в BitBucket.У меня есть хранилище приложений в BitBucket, в котором есть шаблоны Terraform, которые используют модуль в хранилище модулей.Когда я регистрирую изменения в репозитории приложения, оно запускает конвейеры BitBucket.

Когда BitBucket Pipelines запускается в моем репозитории приложений, в шаблоне Terraform есть мой репозиторий Modules в качестве источника для модуля, который использует шаблон.Конвейер запускает terraform init, что приводит к сбою, так как Конвейеру необходимо ввести пароль для исходного хранилища модулей.Я видел, как люди используют git-помощник для хранения учетных данных, но это, кажется, решение для кэширования ранее введенных учетных данных.Это было бы не так в этом решении, поскольку это образ Docker, в котором ранее не были бы кэшированы мои учетные данные git.

Я также потратил много времени, пытаясь заставить работать sshс этим.Я сгенерировал открытые / закрытые ssh-ключи в своем хранилище приложений, предоставил открытый ключ к своему хранилищу модулей и затем установил в качестве источника модуля мой путь ssh-git.Terraform не может определить путь к репозиторию, говоря, что это недопустимый репозиторий.

Ошибка загрузки модулей: Ошибка загрузки модулей: ошибка загрузки 'ssh: //git@bitbucket.org: foo/bar.git ': C: \ Program Files \ Git \ cmd \ git.exe завершился с 128: клонирование в' .terraform \ modules \ f169a1ea8d4eb404 '... ssh: не удалось разрешить имя хоста bitbucket.org:foo: имя илислужба не известна фатально: не удалось прочитать из удаленного хранилища.

Пожалуйста, убедитесь, что у вас есть правильные права доступа и хранилище существует.

При использовании ssh я попытался настроитьисточник как git::ssh://git@bitbucket.org:foo/bar.git и git::git@bitbucket.org:foo/bar.git.Каждый раз, когда мне говорят, что это неверный репозиторий, имя хоста неизвестно и его нельзя авторизовать.Я также добавил bitbucket.org в мой файл known_hosts в Windows по пути $HOME/.ssh.Я не уверен, правильно ли используются ключи SSH или Terraform не может определить путь к хранилищу BitBucket.

Я бы предпочел использовать маршрут SSH через HTTPS / кэшированные учетные данные, но я не могу 'это не сработает, даже если я запускаю 'terraform init' локально на моей машине с Windows.Итак, я хотел бы начать с того, что мне нужно сделать в Windows, чтобы Terraform использовал репозиторий BitBucket с SSH в качестве источника модулей?

1 Ответ

0 голосов
/ 17 сентября 2018

Я не уверен, правильно ли используются ключи SSH или Terraform не может определить путь к хранилищу BitBucket

Попробуйте снова запустить весь процесс после установкипеременная окружения GIT_SSH_COMMAND для ssh -v: она покажет вам ключ, используемый для сеанса ssh.
Примечание: ssh://git@bitbucket.org:foo/bar.git неверно: должно быть ssh://git@bitbucket.org/foo/bar.git.

...