Если честно, на момент написания скриптов, я не утруждался поисками существующих решений, мне было просто интересно сделать все самому. И, хотя репозиторий на Bitbucket появился вместе с первой версией скриптов, мысли об их возможной полезности для кого-то еще, пришли в голову немного позже.
И все же для начала стоит рассмотреть существующие решения. Одно из них описано в статье. В ней приводится пример скрипта для FreeBSD, который создает виртуальный хост. Другое решение приводится в статье, и там рассматривается аналогичный скрипт, но уже для Debian.
Ознакомившись с материалами статей, можно сделать вывод, что ни в одной из них не представлено полное решение задачи. Также огорчает отсутствие гибкой системы параметров, то есть нельзя воздействовать на поведение скриптов, не изменяя их код. А, тем временем, нам может понадобиться создать виртуальный хост без поддержки PHP или, например, не создавать базу данных. Кроме того, все конфиги находятся прямо внутри скриптов, что тоже не очень хорошо.
К делу
Итак, имеется несколько скриптов:
- siteadd.sh — для создания виртуального хоста;
- passwd.sh — для смены пароля;
- backup.sh — для создания резервной копии;
- sitedel.sh — для удаления виртуального хоста.
Как с ними работать, описано на вики, но общая идея такова, что, например, при создании виртуального хоста test.ru скрипт спрашивает, какой пароль нужно назначить пользователю test.ru, создает этого пользователя в системе, затем создает папку /var/www/data/test.ru/public_html с файлом-заглушкой index.html и дает все необходимые права пользователю test.ru.
Далее скрипт создает файл конфигурации nginx по шаблону с нужными параметрами и аналогичным образом настраивает пул PHP-FPM, в PostgreSQL создает базу данных test_ru и пользователя test_ru, которого назначает ее владельцем.
Если при вызове скрипта указан параметр --no-php, то пул PHP-FPM не настраивается, а при создании файла конфигурации nginx используется шаблон без поддержки PHP. При наличии параметра --no-pgsql, в PostgreSQL не создается база данных и пользователь.
При изменении пароля для виртуального хоста test.ru скрипт спрашивает новый пароль и назначает его как для пользователя test.ru в системе, так и для пользователя test_ru в PostgreSQL.
При создании резервной копии для виртуального хоста test.ru скрипт создает:
- архив файлов /var/www/backup/test.ru/YY-mm-dd_HH:ii:ss.tar.gz;
- дамп базы /var/www/backup/test.ru/YY-mm-dd_HH:ii:ss.sql.
При удалении виртуального хоста test.ru скрипт удаляет базу данных и пользователя test_ru из PostgreSQL, удаляет папку /var/www/data/test.ru и пользователя test.ru из системы. Резервные копии не удаляются.
Следует отметить, что есть две версии скриптов:
- обычная версия, которая лежит в ветке default;
- версия с поддержкой передачи параметров в формате JSON, которая лежит в ветке json.
Обычная версия не требует никаких специальных средств. Версия с поддержкой JSON требует наличия в системе процессора JSON под названием jq, который доступен через стандартные репозитории Debian. И хотя кому-то придется не по душе такое условие, эта версия сейчас является более гибкой, но ненадолго.
Что дальше?
Время от времени я возвращаюсь к своему серверу, чтобы поиграться. В результате развиваются скрипты, и вот, что бы хотелось доработать в первую очередь:
- увеличить количество параметров обычной версии, что сделает ее более гибкой, в том числе, добавить параметр для развертывания резервной копии;
- дописать шаблоны конфигураций, т.к. там отсутствуют некоторые настройки;
- написать скрипт очистки устаревших резервных копий;
- обеспечить поддержку Apache и MySQL.
На этом пока все. Напоминаю, что скрипты можно скачать тут. Буду рад замечаниям и пожеланиям. Спасибо за внимание!
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. FiveFilters.org recommends: March Against Mainstream Media (More info).
Комментариев нет:
Отправить комментарий