Мы перенесли много исходного кода в git и очень довольны нашим текущим решением. Мы хотели бы, чтобы наши файлы конфигурации сервера были записаны на одной и той же системе, но есть несколько вещей, которые не работают так, как нам хотелось бы, и я надеюсь, что кто-то может поделиться своим опытом здесь.
Этот вопрос похож на Использование контроля версий для файлов конфигурации сервера? , но у нас есть некоторые особые требования, которые не работают с предложениями по этому вопросу.
Текущая настройка использует Subversion для файлов конфигурации. Соответствующее хранилище выглядит примерно так
/ # корень хранилища + - www.domain.com/ # настройка для www | \--и т.д/ | \ - apache2 / + - dev.domain.com/ # настройка для dev | + - и т.д. / | \ - опт / | \ - app1 / | \ - conf / # конфигурация для app1 на dev \ - staging.domain.com/ # конфигурация для постановки
С Subversion это будет работать просто отлично, потому что можно просто извлечь подкаталог репозитория. Кроме того, вы можете использовать svn: externals для указания на одну общую структуру для нескольких различных настроек конфигурации. Нам пришлось иметь дело только с файлами .svn во всех версионных каталогах. Git, с другой стороны , не имеет svn: внешние и редкие извлечения всегда требуют, чтобы путь от корневого каталога к фактическому каталогу был одинаковым.
При обсуждении перехода на git я попытался записать основные требования для управления версиями конфигурации сервера:
- мы хотим только один репозиторий
- должна быть возможность легко вносить изменения в центральный пульт
- наборы изменений должны содержать настоящего автора
Есть ли хороший способ иметь всю конфигурацию в одном репозитории и иметь только подпуть в качестве рабочей копии? В настоящее время я рассматриваю два подхода, но хотел бы сначала задать этот вопрос
- Если репозиторий .git находится в фиксированном месте, например, где-то в / var , мы можем ссылаться на подпуть из «целевого» рабочего каталога. Основная проблема: я бы не знал, как "связать" файл / etc с другим каталогом, чтобы импортировать только содержимое, кроме символических ссылок на отдельные файлы.
- Я нашел другую альтернативу в этом вопросе SO , предлагая иметь несколько веток в одном хранилище. Это, конечно, увеличит сложность, но я мог видеть, как мы пытаемся сделать это.
Использование git на одной машине для управления файлами конфигурации работает нормально, но я считаю, что должен быть кто-то, кто использует его так, как мы хотели бы его использовать.
Спасибо
Карим
/
из-за разрешений на запись.