Контроль версий файлов конфигурации веб-сервера - PullRequest
4 голосов
/ 23 августа 2011

Между мной и сетевым архитектором мы управляем множеством веб-серверов (FreeBSD).Он отвечает за все, что связано с сервером / сетью (IP-адреса, межсетевые экраны, пользователи / группы и т. Д.), А я отвечаю за все, что связано с сетью (Apache, PHP, MySQL).Иногда обязанности перекрываются.

Несколько раз случалось, что в конфигурационные файлы были внесены некоторые изменения, которые более или менее повлияли на сервер, и мы не смогли выяснить, кто из нас внес изменения и почему.

Я - веб-разработчик - думаю, что было бы неплохо поставить файлы под контроль версий (в настоящее время мы используем Subversion), чтобы при каждом изменении чего-либо нам приходилось комментировать изменения.Это решит все проблемы с вопросом, кто что сделал и почему.

Конкретные файлы конфигурации, о которых я думал, были:

  • конфигурация брандмауэра
  • конфигурация apache(с дополнениями)
  • php config (php.ini)
  • MySQL config (my.conf)

Я уже знаю, что идея контроля версий сервераКонфигурационные файлы - звуковые, основанные на другой вопрос, заданный здесь .Меня беспокоит только то, как это сделать правильно на стороне веб-сервера, поскольку файлы находятся в разных местах.Помещение всего /usr/local/etc под контроль версий кажется бессмысленным, поскольку оно содержит не только файлы конфигурации.

Мне было интересно, не создавать ли новую папку, скажем, /config, которая будет находиться под контролем версий и будет содержатьвсе необходимые нам файлы конфигурации, а затем замените исходные символическими ссылками на файлы в папке /config.Например:

/usr/local/etc/apache22/httpd.conf -> /config/apache22/httpd.conf

Итак, вопрос: Это хорошая идея, а если нет, то какое решение лучше?

Ответы [ 3 ]

4 голосов
/ 23 августа 2011

Если вы используете GIT, то выводить все /usr/local/etc под контроль версий вовсе не бессмысленно.

  • вы можете отслеживать только несколько файлов, если вы выбрали
  • рабочий каталог со всеми отслеживаемыми конфигурационными файлами чуть больше размера

Просто установите git, затем перейдите на /usr/local/etc и напишите git init. Это создаст папку .git в вашем текущем местоположении (по сути, делая эту папку хранилищем).

Затем добавьте файлы конфигурации, которые вы хотите отслеживать: git add firewall/firewall_config.conf apache2/httpd.conf и т. Д. и зафиксировать: git commit -m "Initial Configuration"

Ваши файлы конфигурации теперь отслеживаются.

1 голос
/ 28 августа 2011

Рассматривали ли вы какие-либо инструменты управления, предназначенные именно для этого? Я рекомендую Puppet или Chef, использовав их на предыдущих работах для подобных вещей.

0 голосов
/ 11 февраля 2016

Поскольку вы управляете конфиденциальными файлами конфигурации, я бы порекомендовал настроить внутренний сервер git, такой как gitlab.Создайте git-репозиторий для каждого сервера или шаблон сервера / изображение / и т. Д.Перейдите в каталог / и откройте «git init».

Вы можете избирательно относиться к тому, что вы ставите под контроль версий, используя только «git add / path / to / file» для файлов, которые вы будете настраивать.

Затем 'git -m' коммит коммит 'и' git push -u origin master '.

...