Непрерывное развертывание с помощью gitignore


12

При непрерывном развертывании с Git, как вы обрабатываете игнорируемые файлы в gitignore? Эти файлы игнорируются по соображениям конфиденциальности (то есть не хотят, чтобы они передавались в другие удаленные репозитории, например GitHub), но если эти игнорируемые файлы не отправляются в репозиторий непрерывного развертывания, приложение не будет работать (так как игнорируемые файлы требуется для правильной работы программного обеспечения).

Как люди обычно идут об этом? В этом случае Git не лучший кандидат для непрерывного развертывания из-за игнорируемых файлов?


2
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он не требует минимальных базовых исследований.
Скудный Роджер

3
Я не вижу недостатка в исследованиях. ОП, кажется, понимает, что Gitignore делает отлично. То, что я вижу, это проблема XY, но поскольку в этом вопросе объясняются и X, и Y, Док смог написать достойный ответ, который, мы надеемся, решит реальную проблему ОП.
Ixrec

1
@ScantRoger: честно, вопрос можно было бы написать лучше, но это далеко не так плохо, что заслуживает тщательного голосования.
Док Браун

Ответы:


14

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

Если вы говорите о чем - то , как файл , содержащий учетные данные базы данных для входа на сервер, который, по соображениям безопасности, вы не хотите быть в системе управления версиями, то вы должны поместить этот файл в среде развертывания один раз , вероятно , вручную человеком, который имеет достаточные права или знает пароль. Но это сделано намеренно и не должно мешать вам ежедневно развертывать новые версии вашего программного обеспечения. Просто убедитесь, что файлы учетных данных на месте не перезаписываются при развертывании новой версии.


Согласитесь, если для сборки и запуска недостаточно проверки из vcs, хотя и в уменьшенном объеме, ваше исходное дерево неполно.
Ньютопия

@Newtopian: обратите внимание, что это может быть действительно преднамеренным и правильным (см. Мой пример).
Док Браун

2

Другой вариант - хранить конфиденциальную информацию внутри вашего инструмента развертывания. И конфигурация инструмента развертывания в отдельном частном хранилище исходного кода.

Оставление конфиденциальных данных на целевой машине работает, но может привести к гниению - кто-то изменяет их, не следуя процедурам, машина тормозит, и никто не помнит правильные настройки и т. Д ...

Например, у Saltstack есть https://docs.saltstack.com/en/latest/topics/pillar/index.html.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.