Где поместить переменные среды для сборки конвейера Jenkins (Best Practices) - PullRequest
0 голосов
/ 24 февраля 2020

Я создаю некоторый интерфейсный проект (Nuxt JS) на моем сервере развертывания (EC2) от Jenkins. Для построения этого проекта нам нужно много переменных среды (информация о корзине S3 и другая спецификация проекта c переменная). Эти переменные также различаются в зависимости от веток, таких как промежуточный сервер, сервер разработки, рабочий сервер .

Так что нужно знать, куда я положил все эти переменные. Я могу объявить переменную как свойства переменной среды конвейера, но я думаю, что это небезопасно. Могу ли я положить переменные на S3 и скопировать эти файлы. Или поместите переменную на машину развертывания (EC2) в виде отдельного файла, например .env.stage, .env.dev и введите эти переменные перед сборкой. Я хочу знать, как правильно и безопасно вводить большое количество переменных.

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Для не секретных переменных среды я бы:

  1. настроил репозиторий со всеми общими переменными среди моих проектов и загружал их во время сборки. JSON пакеты данных всегда были моими любимыми.

  2. setup пакет данных конфигурации внутри каждого проекта, который будет содержать только спецификации проекта c и несекретные значения . это также правильное место для переопределения чего-то определенного общего.

  3. на уровне задания jenkins Я могу оставить некоторые параметры для переопределения пакета данных / общих значений , но только без риска те, которые управляют поведением сборки (например: только сборка - не публиковать sh)

  4. использовать учетные данные Jenkins , если у вас небольшое количество конфиденциальных конфигураций или ( лучше) использовать Hashicorp Vault (бесплатно) для интеграции с JK для секретного управления. Hashicorp довольно сложен, поэтому не используйте его, если вам не нужно иметь дело с большим количеством конфигураций или вам не нужно делегировать обслуживание.

  5. для всего, что не является конфигурацией, общие библиотеки должны предложить вам хорошее место

0 голосов
/ 24 февраля 2020

ИМХО: 1) Все учетные данные для плагина учетных данных 2) Все переменные / настройки для общих библиотек.

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