[devel] Re: idea: webapps packaging and webapps control system

Vladimir Lettiev crux на gorodmasterov.com
Пт Мар 4 02:41:59 MSK 2005


Michael Shigorin wrote:
> Вот алгоритм примерно обрисовать получается?  Задачи-то ясны, 
> а вот реализация без копий или вагонов симлинков, которые
> неизбежно будут искушать "поправить ручками" либо требовать
> отдельного окучивания (и порй создавать странные проблемы) --
> непонятна.

Чем дольше думаю над алгоритмом, тем больше понимаю, что ничего лучше 
симлинковой "фермы" придумать не могу. Т.е. устанавливая веб-приложение 
в /usr/share/... мы тем самым делаем его readonly, но поскольку 
практически всегда требуется изменение каких-то файлов (причём в каждом 
виртуальном хосте своё), то необходимо эти изменяемые файлы _копировать_ 
в виртохост, а на ro-{файлы|каталоги} делать ссылки.

На данный момент такое клонирование я реализовал в виде небольшой 
утилитки farmer. Она умеет клонировать файлы, умеет обновлять их (при 
повторном запуске). В командной строке просит два параметра: 
директория-источник и директория-назначение.
Вначале скрипта есть такая конструкция:
my %config = (
                 "confFiles"=> ["config/*php","config/conf.xml"]
         );

Тут в квадратных скобках, перечисляются названия файлов (и/или 
директорий), которые надо _копировать_, т.е. те самые изменяемые файлы. 
Имена перечисляемых файлов(директорий) указываются относительно 
директории источника. Как видно, можно использовать символ '*' - любая 
последовательность символов (в том чиcле нулевая).

Скриптец я заатачил. Есть ли есть желающие протестировать -- welcome. 
Можно пробовать расширять список confFiles, затем уменьшать и смотреть 
на результат.

Что в итоге. Если каждый веб-пакет, снабжать неким конфигом с указанием: 
списка rw-файлов, конфигурацией для apache, где вместо реальных путей, 
указывать некую переменную ($DocumentRoot). То этого уже вполне 
достаточно для нормального функционирования и обновления веб-приложения. 
Будет утилита, которая будет по требованию клонировать веб-приложение и 
подсовывать корректный конфигурационный файл для апаче для конкретного 
виртохоста.

p.s. Тему СУБД я пока не затрагиваю - это наверно можно решать отдельно.

-- 
С уважением, Владимир Леттиев aka crux <crux на gorodmasterov.com>
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : farmer.gz
Тип     : application/x-gzip
Размер  : 1305 байтов
Описание: отсутствует
Url     : http://lists.altlinux.ru/pipermail/devel/attachments/20050304/54dcf90b/farmer.bin


Подробная информация о списке рассылки Devel