Я пытаюсь использовать модуль 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 в качестве источника модулей?