воскресенье, 5 октября 2014 г.

Подготовка к работе сервера IBM® WebSphere® Application Server Community Edition на Ubuntu Server 12.04 LTS

Перейти к концу метаданных
Переход к началу метаданных
This is version 0.9.0 of this page, which is different from the current working version. (Fix)
Working Version:
VersionStatusChange InfoActions
0.8.0Complete
Page added in 0.8.0.
0.9.0Draft
Page modified in 0.9.0. (show differences)
0.10Page not changed in version 0.10.



Наша задача : подготовить сервер для работы полностью сконфигурированного IBM® WebSphere® Application Server Community Edition. Мы сделаем это на up-to-date Ubuntu Server 12.04 LTS, сOpenSSH и FTP на борту (для удобства). В дальнейшем вы можете использовать данный рецепт для монтажа WebSphere на какой угодно дистрибутив ОС Linux.
Статья написана на примере x32 версии сервера, JAVA и Websphere. Она имеет ограничение в максимум 4Гб выделяемой памяти на процесс (что и обозначено в конфигурационных файлах нашего сервера). Если нужно использовать х64 версию - по сути у нас ничего не меняется (просто замените указанные ниже "i386" на "x86_64" во всех конфигурациях и путях), и используйте х64 сервер и х64 JAVA SDK. Возможно, также потребуется правка настроек сервера, см. подсказка №2.
Важно! Убедитесь, что у вас есть доступ к Интернету в обход корпоративного прокси-сервера (либо есть соответствующие права), иначе он будет мешать обновляться софту.

Установка JAVA SDK и WASCE

Предварительная настройка системы и установка необходимого ПО.

1) Устанавливаем дополнительные библиотеки (все зависимости подтянутся автоматически)

sudo apt-get install libxtst6
sudo apt-get install libgtk-3-0
sudo apt-get install ia32-libs-multiarch


2) Апгрейдим даш (т.к. нам мало функционала sh, а нужен bash)

sudo -i 
cd /bin 
unlink sh 
ln -s /bin/bash sh

Проверяем (должен быть bash):
ls -al `which sh`

3) Качаем IBM java SDK. Патчим, инсталим.

\\1.1.1.44\cs\CBS3Plus\WebShereCE-2.1\IBM_JAVA_SDK — тут берем нужный нам свежий IBM JAVA SDK (6-й версии достаточно). Потом заливаем его по FTP в свою домашнюю папку.

cd /home/имя_пользователя
chmod a+x ibm-java-i386-sdk-6.0-14.0.bin
sudo ./ibm-java-i386-sdk-6.0-14.0.bin

В данном примере мы рассматриваем самый скромный вариант SDK, поэтому берем версию i386. Устанавливается она в каталог: /opt/ibm/java-i386-60.

4) Даем права на папку своему пользователю

sudo chown $USER -hR /opt

5) Устанавливаем Java OpenSDK

sudo apt-get install default-jre
java -version
 

6) Учим систему использовать новые java-команды

sudo nano .bashrc

В  файл  " .bashrc" добавить следующее:
JAVA_HOME=/opt/ibm/java-i386-60
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

JRE_HOME=/opt/ibm/java-i386-60/jre/bin
export JRE_HOME
PATH=$PATH:$JRE_HOME
export PATH

Можно ребут. Проверяем командами:
echo $JAVA_HOME
echo $JRE_HOME
echo $PATH
java -version

Это значит, что все ОК:

7) Берем сам сервер тут (в архиве)

\\1.1.1.44\cs\CBS3Plus\WebShereCE-2.1\Linux
Заливаем его по FTP в папку /opt/ibm/

Распаковываем:
cd /opt/ibm
sudo tar xvjf AppServerCommunityEdition.tar.bz2 -C /opt/ibm/

8) Даем права на исполнение sh-скриптов

chmod 755 /opt/ibm/AppServerCommunityEdition/bin/*.sh

Также прописываем JAVA в настройках сервера:
sudo nano /opt/ibm/AppServerCommunityEdition/bin/setenv.sh

Вот в этой строке:
WASCE_JAVA_HOME="/opt/ibm/java-i386-60"

9) Запускаем сам сервер

cd /opt/ibm/AppServerCommunityEdition/bin
sudo ./startup.sh

Все, сервер работает. Заходим на него через ваш веб-браузер: http://ip-сервера:8080/
 

Если мы это видим, значит сервер у нас завелся. Поздравляю!

10) Для автозапуска при загрузке системы, необходимо сюда

sudo nano /etc/rc.local

Добавить строку (до ‘exit 0′):
sh /opt/ibm/AppServerCommunityEdition/bin/startup.sh

Инстанцирование (instances)

Запуск нескольких WASCE на одном сервере.

1) Подготовка.. 

В этом конфиге необходимо прописать наш IP: 
nano /opt/ibm/AppServerCommunityEdition/var/config/config-substitutions.properties
SMTPHost= 192.168.0.153 
EndPointURI=http\://192.168.0.153\:8080
ServerHostname=192.168.0.153
RemoteDeployHostname= 192.168.0.153 

Все действия с файлами я делал через SFTP, так что тут будет без команд.

2) Создать в корневом каталоге App Сервера каталоги инстансов

/opt/ibm/AppServerCommunityEdition - 2 новых каталога instance1 и instance2.

Выйдет что-то типа такого:
/opt/ibm/AppServerCommunityEdition/instance1
/opt/ibm/AppServerCommunityEdition/instance2

3) Скопировать каталог var

/opt/ibm/AppServerCommunityEdition/var внутрь каталогов instance1 и instance2. Потом удалить оригинальный каталог var полностью.

4) В настройках инстанса №1

nano /opt/ibm/AppServerCommunityEdition/instance1/var/config/config-substitutions.properties

Меняем параметр*:
PortOffset=5

5) В настройках инстанса №2

nano /opt/ibm/AppServerCommunityEdition/instance2/var/config/config-substitutions.properties

Меняем параметр*:
PortOffset=10
*(этот параметр позволяет автоматически открывать другие порты, чтобы инстансы не пересекались)

6) Дальше необходимо настроить через веб-интерфейс. Сначала запускаем инстанс №1

export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance1
sh /opt/ibm/AppServerCommunityEdition/bin/geronimo.sh run

Заходим в веб-интерфейс на http://наш_ip:8080
Здесь, во всех трех параметрах вместо «0.0.0.0» вписываем наш IP адрес:
 
 

Потом останавливаем инстанс №1:
 

7) Запускаем инстанс №2

export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance2
sh /opt/ibm/AppServerCommunityEdition/bin/geronimo.sh run

Заходим в веб-интерфейс на http://наш_ip:8080
 

Также как и в случаем с инстансом №1 меняем во всех трех параметрах «0.0.0.0» на наш IP. Также, нужно везде изменить порты вручную: вместо 8080 - 8090, 8443 - 8453, 8014 - 8024.
 
Останавливаем инстанс №2.
 

Все ! Все готово, для одновременного запуска двух инстансов. Для их запуска, я делал несколько удаленных SSH подключений одновременно. Если вы работаете за сервером локально — можно использовать разные tty.

8) Итак, для запуска инстанса №1

export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance1
sh /opt/ibm/AppServerCommunityEdition/bin/geronimo.sh run
Он будет доступен по адресу: http://наш_ip:8080

Для запуска инстанса №2

export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance2
sh /opt/ibm/AppServerCommunityEdition/bin/geronimo.sh run
Он будет доступен по адресу: http://наш_ip:8090

Важно: запускать только по очереди!

Автозапуск инстансов

Итак, финальным штрихом будет автозапуск нескольких инстансов после перезагрузки ОС.

1) Скопировать скрипт

/opt/ibm/AppServerCommunityEdition/bin/geronimo.sh в папки instance1 и instance2.

2) Отредактировать конфиг

nano /opt/ibm/AppServerCommunityEdition/instance1/geronimo.sh

Добавить в него строку (первой, сразу после закомментированного), сюда:
export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance1

Отредактировать второй конфиг:
nano /opt/ibm/AppServerCommunityEdition/instance2/geronimo.sh

Добавить в то же место:
export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance2

3) Даем разрешение для запуска этих скриптов

sudo chmod 755 /opt/ibm/AppServerCommunityEdition/instance1/*.sh
sudo chmod 755 /opt/ibm/AppServerCommunityEdition/instance2/*.sh

4) Необходимо создать папку для автоматических логов

/opt/ibm/AppServerCommunityEdition/var/log

5) Теперь запускать инстансы можно следующими командами

sh /opt/ibm/AppServerCommunityEdition/instance1/geronimo.sh start
sh /opt/ibm/AppServerCommunityEdition/instance2/geronimo.sh start

6) Еще раз уровняем права 

sudo chown $USER -hR /opt

7) Добавляем скрипты в автозагрузку

sudo nano /etc/rc.local

Скопировать эти строки (до ‘exit 0′) :
sh /opt/ibm/AppServerCommunityEdition/instance1/geronimo.sh start
sleep 1m
sh /opt/ibm/AppServerCommunityEdition/instance2/geronimo.sh start

Все! Теперь наши инстансы будут запускаться автоматически, после перезапуска ОС (с интервалом в 1 минуту). Руководствуясь этими записями, можно сделать какое угодно количество инстансов. Все упирается лишь в железо (а именно - в оперативную память).

Альтернативный способ (запуск 2-х WASCE)

Здесь мы опишем не задокументированные возможности WASCE. А именно, одновременный запуск двух WASCE, без инстанцирования. Это не правильно и не очень удобно, но может кое где пригодится. Например, при одновременном deploy приложений одной версии, но с разными билдами (и такое бывает)

1) Сделать копию папки с WASCE

/opt/ibm/AppServerCommunityEdition/

Выйдет что-то типа такого:
/opt/ibm/AppServerCommunityEdition/
/opt/ibm/AppServerCommunityEdition2/

2) Запустить сервера по очереди... 

Запустить сначала 1-й сервер. Настроить его IP и порты в веб-интерфейсе, как показано выше. Остановить его. Потом запустить 2-й сервер, назначить другие порты и тот же IP. Остановить его.

Команды для поочередного запуска 1-го и 2-го серверов соответственно:
sh /opt/ibm/AppServerCommunityEdition/bin/startup.sh
sh /opt/ibm/AppServerCommunityEdition2/bin/startup.sh

Для верности, уравниваем права:
sudo chown $USER -hR /opt
chmod 755 /opt/ibm/AppServerCommunityEdition2/bin/*.sh

3) Самый важный пункт. Поменять порты во 2-м сервере вручную!

Кроме веб-интерфейса, необходимо поменять вот эти параметры (сделать +5 или +10 к текущим значениям):
sudo nano /opt/ibm/AppServerCommunityEdition2/var/config/config-substitutions.properties

Смотрите только на параметры портов:
 

4) Авто и ручной запуск серверов

Вот список команд...

Команды для запуска серверов:
sh /opt/ibm/AppServerCommunityEdition/bin/startup.sh
sh /opt/ibm/AppServerCommunityEdition2/bin/startup.sh

Для автозапуска, добавить в конфиг:
sudo nano /etc/rc.local

Эти строки (до ‘exit 0′):
sh /opt/ibm/AppServerCommunityEdition/bin/startup.sh
sleep 1m
sh /opt/ibm/AppServerCommunityEdition2/bin/startup.sh

Подсказки

1) После запуска скрипта startup.sh проверить статус процесса можно командой: ps -A

2) Если сервер не запускается и выбивает с этой ошибкой (то серверу не хватает оперативной памяти):
JVMJ9GC028E Option too large: '-Xmx4096m'
JVMJ9VM015W Initialization error for library j9gc24(2): Failed to initialize;
unable to parse command line Could not create the Java virtual machine.

Нужно исправить конфиг скрипта:
/opt/ibm/AppServerCommunityEdition/bin/setenv.sh

Изменить на (или любое другое значение допускаемой под сервер оперативной памяти):
JAVA_OPTS="-Xms128m -Xmx256m -DCOLVIR_SETTINGS=/home/kilork/colvir.settings.xml"
Следите, чтобы у вас хватало реальной физической оперативной памяти для запуска дополнительных инстансов.

3) Крайне желательно все описанные выше действия делать от имени пользователя, а не root. В документации IBM сказано, что из под root приложение может не работать/работать не корректно.

Комментариев нет:

Отправить комментарий