Да, это угроза безопасности, чтобы иметь учетные данные о производстве в контроле версий. Это освобождает ваших разработчиков, чтобы они делали практически все, что захотят. Такие правила, как HIPAA в медицине или PCI для электронной коммерции или SoX для публичных американских компаний, будут хмуриться. Ваш системный администратор тоже разумен.
Основная стратегия заключается в экстернализации этой конфигурации и развертывании процесса развертывания в данных, относящихся к окружающей среде.
Имея эту информацию на самом производственном сервере, это нормально, но не отличное решение. Это хорошо, когда у вас есть только один целевой сервер. Когда у вас есть куча, есть головная боль обслуживания. Всякий раз, когда env. конкретные изменения данных, он должен быть обновлен на каждом сервере. Вы также должны быть уверены, что имеете только env. конкретная информация или изменения, внесенные разработчиками в ранние среды, не могут быть переданы sys-admin для изменения во время развертывания, что приводит к ошибкам производственного развертывания.
Вот где, я думаю, Хадсон позволяет вам отказаться от перспективы непрерывной доставки. Некоторые из коммерческих инструментов, в том числе моей компании, формально отслеживают различные среды и надежно позволяют sys-admin настраивать производственные учетные данные, а разработчики настраивают учетные данные разработчика с помощью этого инструмента. Подобным образом инструменты автоматизации выпуска приложений, такие как наш uDeploy, которые будут вытаскивать из Хадсона и развертывать их, должны иметь такую конфигурацию для каждой конфигурации среды.
В этих сценариях большинство файлов свойств/xml имеют общую конфигурацию, а механизм развертывания заменяет env. конкретные данные при развертывании.
Добавление нового инструмента для этой проблемы, вероятно, будет излишним, но основная стратегия экстернализации информации, относящейся к окружающей среде, в центральное место, где можно найти время развертывания, может работать. Поскольку вы являетесь магазином Maven, вы можете подумать о том, чтобы скрыть часть этого в своем репозитории Maven в области, заблокированной для доступа только операциями. Затем вытащите последнюю конфигурацию для соответствующей среды во время развертывания.
У вас здесь есть выбор вариантов. Подумайте, как все меняется в зависимости от окружающей среды; что зависит от сервера; что нужно обеспечить, какие изменения со временем на стороне разработчиков и т. д. И, пожалуйста, пожалуйста, присаживайтесь с вашим sys-admin и вместе разрабатывайте решение. У каждого из вас есть понимание, другое - нет, и окончательное решение будет лучше для сотрудничества.