Общий .env файл для всех микросервисов

Рейтинг: 0Ответов: 2Опубликовано: 31.03.2023

Я настраиваю разворачивание микросервисов через Jenkins. Имеется много микросервисов и все они имеют один и тот же .env файл, но на разных инстансах. Идея в том, чтобы держать .env файл для этих микросервисов в едином месте, а при билде и запуске микросервиса на удалённом инстансе каждый раз передавать обновленный .env файл. Можете поделиться своими способами в аналогичной ситуации

Ответы

▲ 1Принят

В Jenkins в настройках проекта есть раздел Build Environment, в нём пункт Provide Configuration files, который состоит из списка файлов Managed Files.

введите сюда описание изображения

Исходники файлов задаются в настройках Jenkins, раздел Managed Files

введите сюда описание изображения

План Б

Если не хочется прописывать конфиги, то необхимый файл можно разместить где-нибудь на внутреннем вебсайте или на общем файловом хранилище, доступном на сборочном сервере, а в этап Build добавить первый шаг Execute, который будет выкачивать файлик из хранилища и класть в нужное место. Так мы тоже делаем, выкачивая пачку ресурсов (лого, css с фирменным стилем) из внутреннего Gitlab перед сборкой.

▲ 0

Что мешает в gitlab все хранить и тут тебе и версионирование конфигов и контроль за изменением, а плагином SCM выкачивать и класть в нужное место.

Только тут возникает вопрос, как спрятать чувствительные данные, как вариант при сборке использовать ansible vault и через jenkins credentials дешифровать при деплое на хост.