Назад | Перейти на главную страницу

Совместное использование переменных ENV между несколькими серверами Linux

Мне нужно иметь возможность разделять переменные ENV между несколькими серверами Linux. Эти переменные используются моим приложением. Я хотел бы, чтобы эти переменные синхронизировались между всеми серверами.

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

Одна из моих идей заключалась в том, чтобы создать зашифрованные репозитории с использованием git-encrypt, хранить данные там, а затем каким-то образом через Capistrano или Chef проверять репозитории во время развертывания приложения в незашифрованном виде и передавать переменные ENV на каждом из серверов приложений.

Мне интересно, решал ли кто-нибудь это раньше.

Для моей настройки на основе AWS я использую пользовательский ввод для сценариев развертывания сервера, некоторую логику для расчета / определения переменных env и записи их в файл / etc / environment при развертывании коробки.

Таким образом, мне не нужно хранить переменные в каком-либо репо, их значение вычисляется, когда сервер развернут, и остается неизменным до времени жизни сервера (я всегда могу SSH и изменить их, но это не идеальный способ). Также все серверы типа всегда будут иметь одинаковые переменные Env, поэтому мне не нужно беспокоиться о их синхронизации (в моем случае эти переменные Env не должны изменяться)