null

glassfish3 + jail = ?

Некоторое время назад я уже имел удовольствие по запуску glassfish2 в jail на FreeBSD. В связи с выходом glassfish3 возникло закономерное желание проверить, изменилось ли что-то во взаимоотношениях glassfish и jail.

Берём ZIP архив с glassfish 3.1.2 (последний на момент написания статьи) с официального сайта, разархивируем его, подготавливаем отдельный jail, собираем там openjdk6, пытаемся в получившемся jail создать домен, для чего обращаемся к статье моего коллеги.

Первая попытка создания домена заканчивается с закономерной ошибкой, вызванной горячей любовью glassfish к localhost. Добавляем слово localhost в /etc/hosts для того IP, который выделен jail-у:

192.168.xxx.xxx www.tune-it.ru localhost

Повторяем попытку создать домен - всё успешно. Запускаем домен - тоже всё хорошо. Проделываем все остальные махинации - тоже без проблем.

Таким образом получаем вывод, что в glassfish3 починили проблемы 2-ых версий, жёстко привязанных к 127.0.0.1, и теперь он успешно работает в jail окружении с выделением единственного IP адреса, позволяя запускать на одном хосте требуемое количество серверов приложений под управлением glassfish, и при этом не напрягаться по поводу необходимости развода копий glassfish по разным портам.

При этом glassfish замечательно работает при наличии лишь 3-х файловых систем, смонтированных в read-write: /tmp, /var/tmp, и собственно каталог, в котором будут создаваться домены. Права записи в каталог с самим glassfish при этом не нужны.

glassfish3 не позволяет работать с административным интерфейсом без включения secure admin, а обращаться к HTTPS серверу, который запущен не на 443-м порту не всегда возможно. Для решения этой проблемы в FreeBSD можно настроить модуль portacl, и создавать домен, привязав его к стандартным портам для HTTP и HTTPS:

/usr/local/glassfish3/bin/asadmin create-domain \
  --domaindir=$HOME/domains --user admin --adminport 443 --instanceport 80 \
  myDomain

И, в заключение, ложка дёгтя - в glassfish не будут работать команды pkg и updatetool, которые пытаются что-то скачать с официального сайта, а соответствующих пакетов для FreeBSD там "почему-то" нет. Поэтому если, например, возникнет необходимость отключить один из стандартных компонентов самого glassfish, потребуется некоторая смекалка.