Тестування Fedora Directory Server на SUSE 10

Вступ

Як відомо, один з провідних виробників дистрибутивів Лінукс - компанія Red Hat нещодавно придбала у фірми Netscape цікавий продукт: Netscape Directory Server. Після цього Red Hat черговий раз підтвердила репутацію прихильника ідей ВПЗ, випустивши поряд з Red Hat Directory Server його відкриту версію: Fedora Directory Server (FDS).

На початку лютого вийшла версія 1.0.1, в якій виправлено помилки першої версії. На відповідному сайті пропонується два варіанта встановлення: або бінарний пакунок для Fedora Core, або джерела для самостійного збирання. Процедура збирання наразі важка та заплутана, тому найкраще було би скористатися готовим зібраним пакунком. Якщо ви повсякдень користуєтесь не Fedora Core, а SUSE 10, і не збираєтесь встановлювати федору лише задля того, щоб потестувати FDS, то ця стаття - для вас.

Умовності

Далі у прикладах усі дії виконуються на умовному сервері mars.olimpus.gov, отже заміняйте всі рядки виду mars, або mars.olimpus.gov на ім'я, та, відповідно, повне ім'я вашого власного комп'ютера.

Завантаження

Перш за все завантажимо пакунок FDS:

mars:~# wget -c http://directory.fedora.redhat.com/download/\
fedora-ds-1.0.1-1.RHEL4.i386.opt.rpm

Далі нам знадобиться сервер apache, зібраний для федори:

mars:~# wget -c http://download.fedora.redhat.com/pub/fedora/\
linux/core/3/i386/os/Fedora/RPMS/httpd-2.0.52-3.i386.rpm

Апач крім того потребує пакунок apr-util:

mars:~# wget -c http://download.fedora.redhat.com/pub/fedora/\
linux/core/3/i386/os/Fedora/RPMS/apr-util-0.9.4-17.i386.rpm

Встановлення пакунків

Перш за все встановлюємо бібліотеку termcap, її вимагатиме програма початкового налаштування сервера:

mars:~# yast2 --install termcap

Встановлюємо FDS як звичайно:

mars:~# rpm -ivh fedora-ds-1.0.1-1.RHEL4.i386.opt.rpm

У результаті повинен з'явитися каталог /opt/fedora-ds.

Створюємо каталог для вбудованого апача:

mars:~# mkdir /opt/fedora-ds/apache2

Встановлюємо завантажений апач у каталог /opt/fedora-ds/apache2:

mars:~# cd /opt/fedora-ds/apache2
mars:/opt/fedora-ds/apache2# rpm2cpio ~/httpd-2.0.52-3.i386.rpm | cpio -id

У той же каталог встановлюємо apr-util:

mars:/opt/fedora-ds/apache2# rpm2cpio ~/apr-util-0.9.4-17.i386.rpm | cpio -id
mars:/opt/fedora-ds/apache2# cp usr/lib/lib* /opt/fedora-ds/lib

Створимо символічний лінк на бібліотеку, яку захоче федорівській апач:

mars:/opt/fedora-ds/apache2# ln -s /usr/lib/libdb-4.3.so /usr/lib/libdb-4.2.so

Все, переходимо до налаштування.

Початкове налаштування

Виконуємо програму початкового налаштування з опцією збереження inf-файла:

mars:/opt/fedora-ds/apache2# cd /opt/fedora-ds/setup
mars:/opt/fedora-ds/setup# ./setup -k

Програма починає опитування, відповідаємо на зразок:

Do you accept the license terms? (yes/no) y
Continue? (yes/no) y
Continue? (yes/no) y
Please select the install mode:
  1 - Express - minimal questions
  2 - Typical - some customization (default)
  3 - Custom - lots of customization

Please select 1, 2, or 3 (default: 2) 1
Hostname to use (default: mars.olimpus.gov)
Server user ID to use (default: nobody)
Server group ID to use (default: nobody)
Directory Manager DN [cn=Directory Manager]:

Після завершення програми налаштування slapd процес (власне сервер каталогу) вже запущено, але адміністративний сервер не запустився, тому що наш апач знаходиться в нестрандартному місці. Отже виправимо ситуацію.

Скопіюємо одержаний на першому кроці inf файл у безпечне місце:

mars:/opt/fedora-ds/setup# cp install.inf /opt

Запущений slapd процес, як і весь налаштований каталог сервера нам не потрібні, тому зупиняємо процес та видаляємо каталог:

mars:/opt/fedora-ds/setup# cd /opt/fedora-ds
mars:/opt/fedora-ds# slapd-mars/stop-slapd
mars:/opt/fedora-ds# rm -Rf slapd-mars

Програма початкового налаштування не знайшла нашого "лівого" апача, тому треба їй допомогти, та попутно змінити деякі параметри. Скористуємся своїм улюбленим текстовим редактором аби зробити зміни у файлі /opt/install.inf. Перше: у самому кінці файлу знаходимо рядок: ApacheDir= /usr/sbin. Міняємо його на: ApacheDir= /opt/fedora-ds/apache2/usr/sbin. Після нього додаємо ще один рядок ApacheRoot= /opt/fedora-ds/apache2/etc/httpd. У принципі, цього достатньо, але якщо ви хочете завантажити FDS підготованими тестовими даними, необхідно поміняти в тексті ще декілька рядків. По-перше, треба змінити ім'я каталогу на example.com, по-друге - включити опцію загрузки даних. Рядки повинні виглядати на зразок:

FullMachineName=   mars.olimpus.gov
AdminDomain=   example.com
ConfigDirectoryLdapURL=   ldap://mars.olimpus.gov:389/o=NetscapeRoot
UserDirectoryLdapURL=   ldap://mars.olimpus.gov:389/dc=example,dc=com
ServerIdentifier=   mars
Suffix=   dc=example, dc=com
RootDN=   cn=Directory Manager
AddSampleEntries=   Yes
InstallLdifFile=   suggest
AddOrgEntries=   Yes
ApacheDir=   /opt/fedora-ds/apache2/usr/sbin
ApacheRoot=   /opt/fedora-ds/apache2/etc/httpd

Тепер все готове для остаточного налаштування:

mars:/opt/fedora-ds# cd setup
mars:/opt/fedora-ds/setup# ./setup -s -f /opt/install.inf

На цей раз програма відпрацює без усіляких запитань, запустить потрібні процеси і в кінці видасть щось на зразок:

You can now use the console.  Here is the command to use to start the console:
cd /opt/fedora-ds
./startconsole -u admin -a http://mars.olimpus.org:23646/

Але ви не вірте, ніяка консоль таким чином не запрацює. Через те, що в SUSE шлях до java задається символічними лінками, а стартовий скріпт цього не розпізнає, нам залишається зробити останній "брудний гак". У файлі /opt/fedora-ds/startconsole знаходимо рядки:

LIBJAVA_DIR=`find $JAVA_HOME -name libjava\.s[ol] | sed 's/\/libjava\.s.$//'`
LIBJVM_DIR=`find $JAVA_HOME -name libjvm\.s[ol] | sed 's/\/libjvm\.s.$//'`

та додаємо опцію -L, отже одержуємо такі рядкі:

LIBJAVA_DIR=`find -L $JAVA_HOME -name libjava\.s[ol] | sed 's/\/libjava\.s.$//'`
LIBJVM_DIR=`find -L $JAVA_HOME -name libjvm\.s[ol] | sed 's/\/libjvm\.s.$//'`

Адміністративна консоль

От тепер нарешті можна скористатися із своїх трудів:

mars:/opt/fedora-ds# ./startconsole -u admin -a http://mars.olimpus.org:23646/
Логін
Вікно властивостей користувача

Використані матеріали