Наша задача: установить 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`
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
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
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/
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
Здесь, во всех трех параметрах вместо «0.0.0.0» вписываем наш IP адрес:
Потом останавливаем инстанс №1:
7) Запускаем инстанс №2:
export GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance2 sh /opt/ibm/WebSphere/AppServerCommunityEdition/bin/geronimo.sh run
Заходим в веб-интерфейс на http://наш_ip:8080
Также как и в случаем с инстансом №1 меняем во всех трех параметрах «0.0.0.0» на наш IP. Также, нужно везде изменить порты вручную: вместо 8080 — 8090, 8443 — 8453, 8014 — 8024.
Все! Все готово, для одновременного запуска двух инстансов. Для их запуска, я делал несколько удаленных 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
Для наглядности, вот скриншот параметров, которые необходимо подправить вручную:
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.
Удачи! :)
Доброе время суток!
Могли бы ли вы дать такую же инструкцию и для HP UX/
Увы не могу. Это проприентарная ОС и я не сталкивался с ней.