UMGUM.COM (лучше) 

Debian Linux + Lotus Domino ( Установка Lotus Domino 8.5 на Debian GNU/Linux Squeeze. )

28 июня 2011  (обновлено 15 августа 2016)

OS: Debian GNU/Linux Squeeze.
Application: IBM Lotus Domino 8.5 for Linux (xSeries).

В принципе, можно на Linux применить дистрибутив Lotus Domino, предназначенный для Solaris или AIX - отличаются они только инсталлятором. Но в этом нет необходимости, так как IBM подготовила для "обычных" Linux дистрибутив "xSeries". Он так и именуется, например, дистрибутив "IBM Lotus Domino 8.5 for Linux" называется "lotus_domino85_xlinux".


Проведём подготовительные работы.

В файле /etc/hosts описываем для локального и внешнего IP определённое серверу символическое имя, для того, чтобы в дальнейшем оперировать не с IP адресами, а с постоянными именами:

# cat /etc/hosts

....
127.0.0.1    localhost
127.0.0.1    domino.example.com  domino

192.168.1.1  domino.example.com  domino
....

Устанавливаем Java-машину:

# aptitude install sun-java6-jre

Создаём местечко, где будет работать сервер Domino:

# mkdir -p /var/lib/notes/data
# mkdir -p /var/log/notes

Добавляем группу и пользователя, от имени которых будет работать сервер Domino:

# groupadd notes
# useradd --shell /bin/false --home-dir /var/lib/notes --gid notes notes

Обращаю внимание на то, что я лишил пользователя notes возможности работать в так называемой "оболочке", иначе говоря, от имени пользователя можно запустить приложение, но нельзя будет работать в "командной строке". Это создаёт некоторые неудобства при тестировании работы приложений, но добавляет лишний час спокойного сна.

Явно добавляем пользователя notes в группу notes:

# usermod --append --groups notes notes

Создадим для пользователя notes скрипт определения набора переменных окружения среды Bash, в которой мы будем запускать сервер Domino, где укажем дополнительные пути поиска исполняемых файлов, библиотек и конфигурационных файлов:

# touch /var/lib/notes/.bash_profile

export LOTUS=/opt/lotus
export NOTES_DATA_DIR=/var/lib/notes/data
export PATH=${PATH}:/opt/lotus/bin:/var/lib/notes:/var/lib/notes/data

Распаковываем дистрибутивный архив в место, которое мне представляется наиболее для этого подходящим:

# cp ./lotus_domino85_xlinux.tar /usr/src
# cd /usr/src
# tar xvf ./lotus_domino85_xlinux.tar

Переходим в директорию с инсталляционными скриптами и запускаем установку в режиме текстовой командной строки:

# cd ./linux/domino/
# ./install -console

Lotus Domino for Unix Install Program
-------------------------------------
InstallShield Wizard

Initializing InstallShield Wizard...
....

Пробежимся по ключевым этапам инсталляции.

Читаем лицензионное соглашение, подтверждаем его приём или отказываемся от использования продукта, буде что не устроит.

В случае достижения соглашения с производителем продукта выбираем на следующем этапе режим установки одиночной инсталляции "Domino Server", явно отказываясь от установки "Server Partitions":

....
[ ] 1 - Install Data  Directories Only for Partitioned Domino Server

To select an item enter its number, or 0 when you are finished: [0]

Далее соглашаемся с будущим месторасположением исполняемых файлов "Lotus Domino":

-------------------------------------------------------------------------------
Lotus Domino Install Location

Please specify a directory or press Enter to accept the default directory.

Program Files Directory Name [/opt/ibm/lotus]

А вот месторасположение баз данных, предлагаемых установщиком по умолчанию мне не нравится. Переопределим его на своё:

-------------------------------------------------------------------------------
Lotus Domino Install Location

Please specify a directory or press Enter to accept the default directory.

Data Files Directory Name [/local/notesdata] /var/lib/notes/data

Задаём имя и группу пользователя, под которым будет запускаться сервер Domino:

-------------------------------------------------------------------------------
Input Unix/Linux user name and group name panel

User Name [notes]

Group Name [notes]

Определимся с методом первичной настройки сервера после его установки.

Лучше всего после прохождения процесса установки запустить сервер Lotus Domino в специальном режим первичной настройки и удаленно донастроить сервер с помощью утилиты serversetup из комплекта "Notes Administrator". На данный момент IBM предоставляет "Notes Administrator" и "Notes Designer" только для платформы Microsoft Windows, потому придется держать для администраторов и разработчиков рабочие станции на базе этой операционной системы.

Указываем "Remote server setup", выбирая вариант удалённой установки:

-------------------------------------------------------------------------------
Select Server Setup

After the installation completes, for new installation server setup will be
launched and for upgrade the server will be restarted automatically.

[ ] 1 - Local
[X] 2 - Remote
[ ] 3 - Manual

Удостоверимся в том, что всё так, как нам и требуется:

---------------------------------------------------------
Lotus Domino will be installed in the following location:

  Program Files:        /opt/ibm/lotus
  Data Files:           /var/lib/notes/data
  Domino Kit Type:      EnterpriseServer

  Unix Install Options:
    User Name: notes
    Group Name: notes
    Install Data Only: No
    Start Server Setup: Yes (Remote)
....

Даём отмашку на непосредственно инсталляцию:

Checking Minimum OS Version
Warning:
  *****************************************************
  Domino does not support this system:

  *****************************************************

Installing Lotus Domino. Please wait...

|-----------|-----------|-----------|------------|
0%         25%         50%         75%        100%
|||||||

Нас уведомят в том, что используемая операционная система официально не поддерживается производителем Lotus Domino. Впрочем, инсталляции это не мешает, так как все необходимые для работы компоненты имеются.

После завершения установки создаётся комплект для "деинсталляции":

|-----------|-----------|-----------|------------|
0%         25%         50%         75%        100%
|||||||||||||||||||||||||||||||||||||||||||||||||||

Creating uninstaller...

Минут десять ожидаем...

На случай, "деинсталлятор" скромно расположился в директории "/opt/ibm/lotus/notes/latest/linux/_uninst/" и запустить его, при необходимости, можно следующим образом (хотя проще попросту удалить директории "/opt/ibm/lotus" и "/var/lib/notes/data" - после этого сервер можно считать полностью удалённым):

# /opt/ibm/lotus/notes/85010/linux/_uninst/uninstaller.bin -console

В итоге, читаем меморандум о том, что содеяли:

Configuring Domino Server from
Unix user name : notes
Unix group name : notes
Domino program directory: /opt/ibm/lotus
Domino data directory: /var/lib/notes/data
You will be prompted for the password of the notesdata owner.
....

Читаем лог установщика по адресу "/tmp/DominoInstall.log", если интересно или что-то показалось прошедшим не так, как должно было бы быть.

С учётом того, что наша операционная система официально не поддерживается производителем, в процессе инсталляции есть некоторые особенности. В частности, после установки сервер Domino не запускается автоматически в ожидании дальнейшей настройки. Сделаем это вручную:

# cd /var/lib/notes/data
# su --shell /bin/bash --login notes --command "/opt/ibm/lotus/bin/server -listen"

Сессия блокируется в ожидании подключения извне, с сопутствующим уведомлением:

./java -ss512k -Xoss5M -cp jhall.jar:cfgdomserver.jar:./ndext/ibmdirectoryservices.jar lotus.domino.setup.WizardManagerDomino -data /var/lib/notes/data -listen
Remote server setup enabled on port 8585.

The Domino setup server is now in listening mode.
A remote client can now connect to this server and configure Domino.

To connect to this server, launch the Remote Domino Setup program from a command-prompt as follows:
From a Domino administrator client: serversetup -remote
From a Domino server: server -remote
....

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

*Warning all runtime debug info will be logged to /var/lib/notes/data/setuplog.txt

После успешной настройки можно попробовать запустить сервер Lotus Domino вручную:

# cd /var/lib/notes/data
# su --shell /bin/bash --login notes --command "/opt/ibm/lotus/bin/server"

Lotus Domino (r) Server, Release 8.5.x ....
Copyright (c) IBM Corporation 1987, .... All Rights Reserved.

Event Monitor started
....
Console Logging is ENABLED
....
Database Server started
....
Database Replicator started
....
Agent Manager started
....
LDAP Server: started
....
Administration Process started
....
JVM: Java Virtual Machine initialized.
....

Удостоверимся в том, что сервер Lotus Domino прослушивает определённый ему порт:

# netstat -apn

....
tcp  0  0 0.0.0.0:389   0.0.0.0:*  LISTEN  22516/ldap
tcp  0  0 0.0.0.0:1352  0.0.0.0:*  LISTEN  21959/server
....

Теперь, после того, как мы наигрались с пробными запусками сервера Domino, пришло время создать скрипт управления и автоматического запуска/остановки сервиса.

Устанавливаем утилиту Screen, с помощью которой будем запускать сервер Domino:

# aptitude install screen

Создаём для Screen специальный конфигурационный файл, в котором включим журналирование всего происходящего:

# touch /var/lib/notes/.screenrc-log

# Включаем журналирование
log on
# Определяем файл журнала
logfile /var/log/notes/screen.log
# Задаём период "сброса" накопленных данных в файл журнала (sec)
logfile flush 60

Пишем скрипт управления и автоматизации запуска:

# touch /etc/init.d/notes-management.sh
# chmod ugo+x /etc/init.d/notes-management.sh

# cat /etc/init.d/notes-management.sh

#!/bin/bash

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin/:/var/lib/notes:/var/lib/notes/data
DATE=`date +"%Y-%m-%d %H:%M:%S"`
NOTESUSER=notes
NOTESSERVER=/opt/ibm/lotus/bin/server
NOTESEXEC=/opt/ibm/lotus/bin/nsd
NOTESDATA=/var/lib/notes/data
NOTESINI=/var/lib/notes/data/notes.ini
NOTESLOG=/var/log/notes/managment.log
SCREENCONF=/var/lib/notes/.screenrc-log
SCREENLOG=/var/log/notes/screen.log

start() {
  echo "${DATE}: Starting Lotus Notes Domino in Screen..."
  echo "${DATE}: Starting Lotus Notes Domino in Screen..." >> ${NOTESLOG}
  # Запускаем сервер Lotus Notes Domino в Screen от имени пользователя notes с явным указанием конфигурационного файла notes.ini
  su --shell /bin/bash --login ${NOTESUSER} --command "screen -c ${SCREENCONF} -L -U -d -m -S screen.notes ${NOTESSERVER} =${NOTESINI}"
return ${?}
}

stop() {
  echo "${DATE}: Stoping Lotus Notes Domino..."
  echo "${DATE}: Stoping Lotus Notes Domino..." >> ${NOTESLOG}
  su --shell /bin/bash --login ${NOTESUSER} --command "${NOTESSERVER} =${NOTESINI} -q" >> ${NOTESLOG}
  # Корректная остановка сервера Domino, с сохранением всех данных, операция затяжная - от трёх до двадцати минут
return ${?}
}

case "$1" in
  start)
    start
  ;;
  stop)
    stop
  ;;
  kill)
    echo "${DATE}: Kill Lotus Notes Domino..."
    echo "${DATE}: Kill Lotus Notes Domino..." >> ${NOTESLOG}
    su --shell /bin/bash --login ${NOTESUSER} --command "cd ${NOTESDATA}; ${NOTESEXEC} -kill" >> ${NOTESLOG}
  ;;
  restart)
    echo "${DATE}: Restarting Lotus Notes Domino..."
    echo "${DATE}: Restarting Lotus Notes Domino..." >> ${NOTESLOG}
    stop
    echo "Wait..."
    sleep 5
    start
  ;;
  *)
    echo "Usage: $0 {start|stop|kill|restart}" >&2
    exit 1
  ;;
esac

exit 0

Прописываем наш скрипт для всех уровней исполнения в системе:

# update-rc.d notes-management.sh defaults

Слегка наводим порядок с доступом к ресурсам и конфигурациям:

# chown -R notes:notes /var/lib/notes /var/log/notes
# chmod -R o-rwx /var/lib/notes /var/log/notes

Для того, чтобы не получать сильно разросшийся одиночный файл журнала настроим его ротацию.

Устанавливаем приложение ротации текстовых файлов с одновременным их сжатием:

# aptitude install logrotate gzip

Создаем конфигурационный файл ротации журнальных файлов для Lotus Notes Domino:

# mkdir -p /etc/logrotate.d
# touch /etc/logrotate.d/notes

# шаблон указывающий объекты подлежащие "ротации"
/var/log/notes/*.log {
  # размер журнального файла, после которого он обрабатывается утилитой
  size 5M
  # отсутствие файла не вызывает ошибку
  missingok
  # количество хранимых отработанных резервных копий
  rotate 10
  # указание сжимать отрабатываемые резервные копии
  compress
  # указание не сжимать первую резервную копию, делать это при повторном проходе
  delaycompress
  # указание не отрабатывать пустые файлы
  notifempty
  # добавлять к наименованию файла резервной копии даты в формате "-YYYYMMDD"
  dateext
  # задать права доступа, владельца и группу создаваемого журнального файла
  create 640 notes notes
}

Проверяем корректность конфигурационного файла:

# logrotate -d /etc/logrotate.d/notes

На этом установка может считаться завершённой. Далее предстоит ручной тюнинг разбухшего до неприличия древнего и корявого монстра, именуемого Lotus Domino.


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )