- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток, уважаемое сообщество.
Решил поделиться небольшой идеей, возможно кому-то будет интересно и полезно.
Устав от утерянных и сломанных конфигураций, авторизацию на серверах под рутом, чтоб перенести новые оптимальные конфигурации, я решил создать репозитарии из папок с конфигурациями и дать к ним доступ в более доступном месте.
Сам я web-программист, какое-то время сидел на ubuntu, сервера (игрушки задачи и рассказывали что я делаю не так. Но всегда было интересно, что именно они сделали сами и как происходят настройки более нагруженных проектов. Все проекты мы храним в bitbucket [2], используя систему управления версиями Mercurial [3]. В один прекрасный день решили поддерживать актуальную версию проектов на серверах используя этот же инструмент и очень облегчили себе жизнь. Теперь поднять на сервере последние обновления можно в две команды:
hg pull && hg up
Почему хостеры не предлагают подобное ПО у себя на shared-хостингах остается загадкой. По-моему заливка по FTP вчерашний день. Сейчас приходят новые сотрудники и им потихоньку даем доступ до серверов, но уже под моим контролем, увидев картину с другой стороны я ужаснулся, что именно натворили на сервере найти было очень сложно. После нескольких часов вернуть в нормальное состояние сервер мне и пришла:
Получив новый сервер (
Все команды производим из под root-пользователя.
Первым делом обновляем ПО на сервере:
apt-get update && apt-get upgrade
Ставим пакет Mercurial [4] (появился в debian 6, но видел статьи установки и под debian 5):
apt-get install mercurial
Переходим в папку с конфигурациями:
cd /etc
Создаем репозитарий:
hg init
на что будет создана скрытая папка ".hg"
Немного расскажем о себе:
nano /etc/.hg/hgrc
Укажем данные:
[ui]
username = User <****@gmail.com>
Уже сейчас можно узнать о всех файлах запустив команду:
hg status
Меркуриал лишь покажет список файлов, которые для него еще новые.
Укажем что хотим добавить все новые файлы в следующий коммит:
hg add
И наконец зафиксируем первое состояние конфигураций:
hg commit -m 'first commit'
Теперь можно спокойно установить и настроить остальное ПО.
В любой момент можно проверить состояние конфигураций используя команду:
hg status
Что именно изменили в файлах можно узнать командой:
hg diff ./путь до файла
Откатить изменения можно командой:
hg revert ./путь до файла
Еще лучше будет ознакомиться со всеми командами:
hg help
Когда поднимаем новый сервер или обновляем старый все время вспоминаешь:
и список может быть большим.
Решил все залить в приватный репозитарий. Повторюсь, что мы используем bitbucket [2]. Создаем на нем репозитарий, получаем путь, что то вроде:
https://bitbucket.org/username/etc-project-a
открываем заново конфигурацию нашего репозитария:
nano /etc/.hg/hgrc
И укажем ниже:
[paths]
default = https://bitbucket.org/username/etc-project-a
Выполним команду:
hg push
На что меркуриал спросит вас данные авторизации на сервере битбакет. Приятная новость, что можно настроить авторизацию по ssh-ключу.
Теперь наши конфигурации в сухом, прохладном месте. Вы всегда можете посмотреть как настроен тот или иной сервер и на примерах поднять новый. Для этого вам надо клонировать репозитарий на локальную машину, либо воспользоваться вполне удобным web-интерфейсом от битбакет.
Плюсы:
Минусы:
Хотел по крону добавить автоматические коммиты, но подумал, что лучше оставить такое простое решение. Возможно есть другие уже готовые решения о чем я бы с радостью ознакомился. Кто знает, может эта небольшая статья поможет вам придумать более простое и полезное решение о котором, я надеюсь, вы тоже с нами поделитесь.
Спасибо.
Автор: Arik
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/debian/31321
Ссылки в тексте:
[1] VPS: https://www.reg.ru/?rlink=reflink-717
[2] bitbucket: https://bitbucket.org/
[3] Mercurial: http://ru.wikipedia.org/wiki/Mercurial
[4] Mercurial: http://packages.debian.org/stable/mercurial
[5] Источник: http://habrahabr.ru/post/175633/
Нажмите здесь для печати.