?

Log in

No account? Create an account
title'; DROP TABLE `users` -- Day [entries|friends|calendar]
Курю бамбук. Дорого.

[ website | GQ's blog ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Об rpm дистрибутивах с любовью [31 Aug 2007|02:38am]

Предыстория: Есть у нас замечательные тонкие клиенты. Называются SunRay. Всем они хороши: серебристые (хотя есть и более старые – фирменных сиреневых тонов), с мониторчиками на IPS матрицах и все такое. Одна беда, им еще нужен серверный компонент: SunRay server. О нем и пойдет речь.

В самом начале горячо любимая фирма SUN написала его, естественно, под ОС Solaris. И он у нас даже стоял и работал. Но так как в качестве сервера приложений выступала линуксовая машина, то все пользователи вместо того, чтобы логиниться в предоставляемый санрей-сервером DM, тыркали пункт “подключиться к другому серверу” и выбирали соответственно линуксовый сервер. В итоге на протяжении всей сессии трафик гонялся от линуксового сервера до солярки с запущенным санрей-сервером и от санрей-сервера до самого санрея.

Ога! – сказали хитрые админы. – Нафига лишний узел?! Дорогая (во всех смыслах) фирма SUN выпустила SunRay Server for Linux. Давайте прямо на сервер приложений и поставим санрей-сервер.

Но тут есть один нюанс: санрей-сервер в качестве рекомендованной/требуемой платформы хотел RHEL или SLES уж не помню какой версии. А хитрые админы использовали Debian. Но на каждую жопу… и далее по тексту. Короче, не они первые, саксесс-стори в инете расписаны, даже патчи какие-то были. В общем оно как-то заработало. Проблема в том, что заработало именно как-то: ребята из САНа под маркой СанРейСервер (СРС) поставляли такую жуткую мешанину джавайского кода и шелл-скриптов… И главное как это все работало. Например, при подключении нового пользователя, для запуска X-сервера СРС, не стесняясь, генерировал кучу конфигов, что-то запускал, потом эти конфиги переписывал. При чем делал это в системном /etc, а не в какой-нить своей песочнице. Короче все это пришлось править так чтобы оно не сильно мешало основной системе. Получилась большая дура с кучей костылей. Она работала, но было страшно. Так как если что-то сломается, то повторить эту героическую эпопею в короткий срок даже при большом желании будет невозможно. Но нашими молитвами оно работало и не ломалось. Разве что кой-какие глюки вылезли, сеансы там временами терялись. Ну еще раз в пару месяцев СРС становилось настолько плохо, что его надо было перезапускать.

Ну а теперь начинается сама история:

Появились тут у нас система хранения данных и несколько мощных серверов. И родилась как-то идея, что надо всю инфраструктуру на это железо перетаскивать. В том числе и СанРей Сервер. Но так как страх, что если оно упадет, то наступит армагездец, был в нас все еще жив, то мы решили поставить его в выделенную виртуальную машину. И пусть он там в замороженном окружении работает, мы его вообще трогать не будем. А даже если он сам по себе деградирует и перестанет работать – восстановим эту машину целиком из бэкапа и будет счастье.

Какой дистрибутив ставить в эту ВМ? В Дебиане СРС работал как-то не стабильно. Ну так создадим ему тепличные условия. Что он там хочет? RHEL 4? Поставим CentOS, нам не сложно… так мы думали…

Оказалось, что для rpm-based дистрибутивов не существует аналога debootstrap. Точнее rpmstrap существует. Но он а)неработает (не ставит centos4), б)убог и ублюдочен by-design. Почти день на него убил. В итоге пришлось ставиться руками, спасибо хоть на оффсайте было собранное под xen ядро и initrd образ устанавливающий систему по сети.

Далее, началось самое забавное. Никита, по официальному инсталл-гайду на пару сотен страниц в течении 4х часов ставил этот долбанный SRS. Грабли были буквально через шаг, но в итоге мы уткнулись в реальную проблему. Что вы думаете? Во-первых, эти гаврики из САНа банально не прописали зависимости, так что нам пришлось делать ldd на все бинарники и удовлетворять зависимости вручную. Но самое смешное, что они собрали этот свой СРС относительно более новых библиотек. Чем те, которые идут в рекомендуемом ими RHEL4. Попробовав разрешить зависимости сторонними пакетами (да здравствует rpmseek), мы поняли, что нарвались на цепную реакцию, разрешать которую будем еще час, и самое пугающее, что фиг его знает, заработает ли оно после всего этого. Как минимум это будет явно не та тепличная среда, о которой мы мечтали. И тут, по запросу “sunray server linux” в гугле я вижу чуть ли не первую ссылку с хауту на один(!) экран по установке нужной нам версии SRS на Debian Sid.

Естественно не без небольших граблей, но за час СРС был поставлен.

Какая из всего этого мораль? Я вынес несколько: во-первых, разбиение на пакеты в RHEL отвратительное: например библиотеки, которые могут требоваться какому-нить другому приложению, и гтк-шные утилиты там вполне могут идти одним пакетом. Во-вторых: RHEL – кашеобразный дистрибутив. То есть там конечно есть правила, но до уровня Debian Policy им расти и расти. В-третьих, САНтехники все-таки уроды. Хотя это я знал еще до этого, предыдущего знакомства с СРС хватило. И наконец: все-таки Дебиан – лучший дистрибутив. Хотя бы по тому, что именно его я знаю.

permalink Add comment

navigation
[ viewing | August 31st, 2007 ]
[ go | previous day|next day ]