Установка IBM WebSphere Application Server Community Edition на Ubuntu Server 12.04

ibm_websphere

Наша задача: установить IBM® WebSphere® Application Server Community Edition (WASCE). Мы сделаем это на полностью обновленном Ubuntu Server 12.04 LTS, с OpenSSH и FTP на борту.

Пара пояснений: мы используем Ubuntu Server 12.04. Официально, IBM он не поддерживается. Но тем не менее, все прекрасно работает.

Версии и имена установочных файлов:
wasce_setup-3.0.0.4-unix.bin
ibm-java-i386-sdk-6.0-14.0.bin

Итак… Поехали! (с)

1) Предварительно скачиваем с сайта IBM: WASCE и IBM JAVA SDK
(необходима регистрация):
WASCE: http://www.ibm.com/developerworks/downloads/ws/wasce/
IBM JAVA SDK: http://www.ibm.com/developerworks/java/jdk/linux/download.html

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

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

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

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

Проверяем (должен быть bash):

ls -al `which sh`

bash

4) Заливаем IBM JAVA SDK по 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

(устанавливается в /opt/ibm/java-i386-60)

5) Даем права на папку своему юзеру:

sudo chown $USER -hR /opt

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

sudo apt-get install default-jre
java -version

7) Учим систему использовать новые 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

testing java

8) Заливаем WASCE по FTP в свою домашнюю папку и инсталим его:

cd /home/имя_пользователя
chmod a+x wasce_setup-3.0.0.4-unix.bin
sudo ./wasce_setup-3.0.0.4-unix.bin

ready

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

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

Также, в настройках сервера необходимо прописать java:

sudo nano /opt/ibm/WebSphere/AppServerCommunityEdition/bin/setenv.sh

Вот в этой строке:

WASCE_JAVA_HOME="/opt/ibm/java-i386-60"

10) Запускаем сам сервер:

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

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

server ready

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

sudo nano /etc/rc.local

Добавить строку (до ‘exit 0’):

sh /opt/ibm/WebSphere/AppServerCommunityEdition/bin/startup.sh

—===ДОБАВЛЕНО 9.12.2013===—

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

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

1) Подготовка..  В этом конфиге необходимо прописать наш IP:

nano /opt/ibm/WebSphere/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/WebSphere/AppServerCommunityEdition — 2 новых каталога instance1 и instance2.

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

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

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

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

Меняем параметр*:

PortOffset=5

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

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

Меняем параметр*:

PortOffset=10

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

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

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

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

2iwasce1Здесь, во всех трех параметрах вместо «0.0.0.0» вписываем наш IP адрес:

2iwasce22iwasce32iwasce4

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

2iwasce5

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

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

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

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

2iwasce62iwasce72iwasce8Останавливаем инстанс №2:

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

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

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

Он будет доступен по адресу: http://наш_ip:8080

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

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

Он будет доступен по адресу: http://наш_ip:8090

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

 

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

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

1) Скопировать файл: /opt/ibm/WebSphere/AppServerCommunityEdition/bin/geronimo.sh в папки instance1 и instance2.

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

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

Добавить в него строку (первой, сразу после закомментированного), сюда:

export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance1

Отредактировать второй конфиг:

nano /opt/ibm/WebSphere/AppServerCommunityEdition/instance2/geronimo.sh

Добавить в то же место:

export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance2

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

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

4) Необходимо создать папку для автоматических логов: /opt/ibm/WebSphere/AppServerCommunityEdition/var/log

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

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

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

sudo chown $USER -hR /opt

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

sudo nano /etc/rc.local

Скопировать эти строки (до ‘exit 0′) :

sh /opt/ibm/WebSphere/AppServerCommunityEdition/instance1/geronimo.sh start
sleep 1m
sh /opt/ibm/WebSphere/AppServerCommunityEdition/instance2/geronimo.sh start

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

 

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

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

1) Сделать копию папки с WASCE: /opt/ibm/WebSphere/AppServerCommunityEdition/

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

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

Команды для поочередного запуска 1-го и 2-го серверов соответственно:

sh /opt/ibm/WebSphere/AppServerCommunityEdition/bin/startup.sh
sh /opt/ibm/WebSphere/AppServerCommunityEdition2/bin/startup.sh

Для верности, уравниваем права:

sudo chown $USER -hR /opt
chmod 755 /opt/ibm/WebSphere/AppServerCommunityEdition2/bin/*.sh

3) Самый важный пункт. Поменять порты во 2-м сервере вручную! Кроме веб-интерфейса, необходимо поменять вот эти параметры (сделать +5 или +10 к текущим значениям):

sudo nano /opt/ibm/WebSphere/AppServerCommunityEdition2/var/config/config-substitutions.properties

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

second

4) Авто и ручной запуск серверов. Команды для запуска:

sh /opt/ibm/WebSphere/AppServerCommunityEdition/bin/startup.sh
sh /opt/ibm/WebSphere/AppServerCommunityEdition2/bin/startup.sh

Для автозапуска, добавить в конфиг:

sudo nano /etc/rc.local

Эти строки (до ‘exit 0′):

sh /opt/ibm/WebSphere/AppServerCommunityEdition/bin/startup.sh
sleep 1m
sh /opt/ibm/WebSphere/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/WebSphere/AppServerCommunityEdition/bin/setenv.sh

Эти параметры отвечают за количество выделяемой памяти:

JAVA_OPTS="-Xms128m -Xmx256m ..."

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

3) Статья написана на примере x32 версии сервера, JAVA и Websphere. Она имеет ограничение в максимум 4Гб выделяемой памяти на процесс. Если нужно использовать х64 версию — по сути у нас ничего не меняется (просто замените указанные ниже ‘i386’ на ‘x86_64’ во всех конфигурациях и путях), и используйте х64 сервер и х64 JAVA SDK. Возможно, также потребуется правка настроек сервера, см. подсказка №2.

Удачи! :)

Установка IBM WebSphere Application Server Community Edition на Ubuntu Server 12.04: 2 комментария

    • Увы не могу. Это проприентарная ОС и я не сталкивался с ней.

Добавить комментарий