bash.im ithappens.me zadolba.li
8759

Доставь себе радость руками

Всё-таки ортодоксальный линуксоид — это диагноз. Но ладно бы люди себе проблемы создавали — у них-то проблем, скорее всего, как раз и нет. Проблемы создаются другим людям.

Потребовалось нашей конторе для решения определённой задачи сложное опенсорсное ПО. ПО это выпускается исключительно для тяжёлых опенсорсных линуксов, как Red Hat или Suse, поэтому решено было установку проводить на CentOS. Покопал в сети, нашёл единственную инструкцию по установке. Сел, начал.

Софт сложный, включает в себя MySQL, OpenLDAP, почтовый и DNS-сервера, Apache и какую-то обвязку на Tomcat. Инструкция изобиловала трудностями и подводными камнями. Взять дамп базы данных MySQL тут и положить его туда-то, задать вручную схемы LDAP, заводить пароли и пользователей, необходимые системе, — всё руками.

Причём такие операции, как разворачивание базы данных MySQL из снэпшота, автор не пояснял. Половина первого дня ушла на раскуривание манов по MySQL по поводу того, где там лежат пользователи, как туда положить дамп и где настраиваются подключения. Плюс интенсивный гуглинг по теме сообщений об ошибках. Второй день целиком прошёл под знаком OpenLDAP, и если с MySQL я был как-то знаком, то про LDAP вообще ни сном, ни духом. Что такое схема, как именуются объекты в дереве, конвертирование конфигов через Slaptest, — всё пришлось изучать методом скоростного погружения и периодических звонков от начальства.

В общем, на исходе пятого дня я свободно ориентировался в сообщениях об ошибках на Python и Java, на которых до этого ни разу в жизни не писал, знал наизусть форматы конфигов MySQL, OpenLDAP, Apache, rsyslog, bind и Exim. Ещё немного — и можно было идти сдавать RHCE экстерном. Однако программа так и не работала.

Мозг кипит, желание сломать монитор нарастает. Вдруг в инструкции вижу, что базу можно почистить командой foo-db-clean. Заинтригованный, пробую. БД чистится, но с нуля не создаётся. Смотрю через rpm, что ещё есть в пакете foo, и нахожу замечательный скрипт foo-setup.

Запускаю. Скрипт интересуется, действительно ли у меня CentOS 5, правда ли написана в /etc/hosts по поводу моего доменного имени, рутовые пароли от MySQL и OpenLDAP. И ставит. Вся установка занимает 15 секунд.

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