Symlinking файлы конфигурации

Наш сервер имеет различные сервисы с собственным конфигурационным файлом. Nginx, Dovecot, Postfix...

Все эти файлы конфигурации находятся в их собственном каталоге /etc/{service}.

Я пытаюсь переместить эти файлы в центральное место и добавить символическую ссылку. Что-то вроде:/etc/postfix/main.cf <- /root/server-config/postfix/main.cf

Вышеуказанное работает для большинства сервисов (Nginx, PHP, ..). Однако некоторые службы, связанные с электронной почтой, выдают ошибки, в которых отказано в разрешении. Я пробовал много разных опций, таких как предоставление большего разрешения как символической ссылке, так и исходному файлу, максимальное разрешение (777), запуск от имени Root, добавление dovecot/postfix в корневую группу.

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

Что я могу сделать, чтобы вышеуказанное работало.

Если у вас есть альтернатива, которая не работает с git или символическими ссылками, добавьте их в качестве комментария.

2 ответа

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

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

Вы можете использовать такие инструменты, как etckeeper, который позволяет автоматически сохранять изменения, внесенные в /etc или (другие каталоги) для систем контроля версий, таких как git, Затем вы можете отправить их в центральное Git-репо.

Почему вы думаете, что вам нужно переместить их, чтобы они были в git-репо? Такие инструменты, как etckeeper, уже существуют, и они хранят все / etc в git-репо.

Также есть тонны инструментов управления конфигурацией (puppet, chef, ansible и т. Д.), Которые вы могли / должны использовать для настройки вещей. Затем вы можете сохранить свою конфигурацию управления конфигурацией в своих репозиториях git.

Многие файлы конфигурации нуждаются в определенном владельце и разрешениях. Пожалуйста, не предполагайте, что root: root - правильная вещь, и разрешение 0777 было бы абсолютно ужасно для файла конфигурации. Это почти наверняка означает, что любой незначительный компромисс в вашей системе становится компромиссом для всего.

Другие вопросы по тегам