# #gitlab #terraform #gitlab-ci
Вопрос:
У меня есть локально размещенный экземпляр gitlab с двумя репозиториями в одной группе.
AWS:
- /Modules
- /VPC
Внутри репозитория vpc я имею в виду модуль, присутствующий внутри Modules
репозитория
module "custom-vpc" {
source = "git::https://local.gitlab.mydomain.com/aws/modules.git//vpc"
…
Однако CI
это приводит к следующей ошибке во init
время этапа:
fatal: unable to access
│ 'https://local.gitlab.mydomain.com/aws/modules.git/': SSL
│ certificate problem: unable to get local issuer certificate
Поскольку оба репозитория являются частью одной и той же группы и размещаются локально, есть ли способ ссылаться на модули, не переходя на маршрут https? Или какие другие решения существуют для этого?
Комментарии:
1. Может быть, использовать git ssh вместо http (ов)? Вы можете использовать ключи развертывания по мере необходимости для SSH-ключей в рамках проекта. Поможет ли это решить вашу проблему? Хотя я думаю, вы также могли бы просто решить проблему SSL и использовать https.
2. @sytech Я пробовал это, то, что меня заблокировало,
deploy_keys
доступно как переменная CI env, однако интерполяция их в код terraform, похоже, не работает.
Ответ №1:
Если вы пытаетесь избежать использования HTTPS, у вас, по сути, есть два варианта:
- Используйте SSH (который вы можете использовать с ключом развертывания, как упоминает sytech в комментариях), или
- Используйте подмодуль git и локально ссылайтесь на свой файл модуля.
Если вы решите использовать второй вариант, просто вставьте свой первый репозиторий git во второй репозиторий в качестве подмодуля и убедитесь, что ваши настройки CI / CD настроены на получение ваших подмодулей. После того, как вы это настроили, обратитесь к пути к модулю, как если бы это был локальный файл, и вам должно быть хорошо без необходимости HTTPS.
Все это было настроено, если вы планируете использовать эту настройку в долгосрочной перспективе, вам действительно следует настроить HTTPS. Правильный способ справиться с этим — использовать репозиторий модулей GitLab terraform, который по-прежнему требует HTTPS. Вы можете получить бесплатный сертификат, используя lets encrypt, и довольно дешево купить домен для проверки.