F. Webový server Tomcat
V tomto jailu bude instalován webový server a servletový kontejner Apache Tomcat.
F2) instalace programů a aplikací
Instalace se bude provádět pomocí PKGNG. K dispozici jsou dvě základní verze pro řadu 6 i 7. Pro naše účely použijeme verzi 7 a konkrétně se bude instalovat balíček tomcat-7.0.40. Na webu je k dispozici verze 7.0.42, kterou je také možné použít. Obecný návod na zprovoznění externě instalované aplikace jako služby systému bude popsán v následujícím jailu v tomto dílu.
F3) zprovoznění a zpřístupnění služby
- upraví se soubor /etc/rc.conf a přidá další řádek:
tomcat7_enable=“YES“
- spustí se server příkazem:
# service tomcat7 start
- vyzkouší se přístup k serveru z prohlížeče: <a>http://x.y.z.IPv4-jailu:8080
- aby bylo možné využívat všech služeb běžícího serveru, je nutné upravit přístup uživatelů k jednotlivým službám
- k tomuto účelu je nutné upravit soubor /usr/local/apache-tomcat-7.0/conf/tomcat-users.xml
- zde se vytvoří potřebné role a podle situace se přiřadí jednotlivým uživatelům. Jednoduché řešení může vypadat třeba takto:
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="tomcat" password="tomcat" roles="manager-gui"/>
- znovu se vyzkouší přístup k serveru: <a>http://x.y.z.IPv4-jailu:8080
- tentokrát je možné se již ke službám serveru přihlásit pomocí loginu tomcat/tomcat
- nastaví se FW dle pokynů Krok 4, jediný přístupný port je 8080
- po novém startu je možné znovu vyzkoušet vzdálené připojení k serveru
- pokud není vzdálené připojení možné, je třeba znovu projít nastavení serveru a FW a případné nedostatky doladit
Velikost jailu a exportovaného souboru jsou následující:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank1/usr/jails/tomcat 461M 435G 860M /usr/jails/tomcat
Velikost exportovaného WDN souboru: 238 MB
Jak je z předchozího popisu patrné, je instalace a zprovoznění Tomcatu poměrně jednoduché. Je to velmi používaný server, ale vzhledem k tomu, že se nejedná o plnohodnotný aplikační server, je třeba mít k dipozici i něco dalšího.
G. Aplikační server Glassfish
V tomto jailu se bude instalovat nejnovější verze aplikačního serveru Oracle Glassfish. Důvod pro jeho instalaci vychází z rozdílů mezi ním a serverem Apache Tomcat. Tomcat je totiž pouze HTTP server a servlet kontejner (spouští servlety a JSP). Glassfish (a např. také JBoss) jsou oproti tomu plnohodnotné Java EE aplikační servery, kde je možné provozovat všechny příslušné technologie. Původně byla v záměru instalace JBoss. V PKGNG i portech je k dispozici několik verzí (jboss-2.4.11_3 , jboss-as-7.1.1 , jboss71-7.1.3 , jboss72-7.2.0_1), takže se to celé zdálo jednoduché. Problém byl ale při spouštění serveru, kdy ten neustále hlásil chybu v modulu LogManager. Ani s pomocí návodů na webu se mi nepodařilo ho zprovoznit. Jednalo se o doporučení, jak upravit konfigurační soubor standalone.conf a dodat do něj odkazy na příslušný LogManager. Ani po delším experimentování jsem se nedobral k žádanému úspěšnému závěru.
Nakonec jsem se tedy rozhodl vyzkoušet Glassfish, pro který hovoří několik výhod:
- podařilo se bez větších problémů zprovoznit nejnovější CE verzi
- podařilo se zprovoznit vzdálenou administraci
- administrační webové rozhraní je velice obsáhlé a umožňuje velké množství voleb a nastavení
- server patří pod Oracle, takže má asi nejlepší napojení na Java infrastrukturu
Vzhledem k tomu, že se jedná o instalaci externí aplikaci, bude nutné upravit systém tak, aby server běžel jako systémová služba a bylo možné s ním také takto nakládat. Hlavně se jedná o to, aby se server jednoduše a automaticky spouštěl při startu jailu. V rámci popisu jeho zprovoznění tak bude uvedena poměrně obecná metoda, jak to v systému PC-BSD/TrueOS upravit a nastavit.
G2) instalace programů a aplikací
Žádná verze Glassfish není ani v PKGNG ani v portech. Nezbylo tedy nic jiného, než použít některou z verzí na webu Oracle. Obecně lze říci, že jsou k dispozici verze přímo od Oracle, viz zde: http://www.oracle.com/technetwork/java/javaee/downloads/index.html?ssSourceSiteId=ocomen
Kromě toho jsou k dispozici i komunitní verze. Já jsem nakonec použil komunitní verzi Glassfish 4, která je dostupná zde: https://glassfish.java.net/download.html. Jediné, co server ke svému běhu potřebuje, je JVM prostředí. Proto jako jediný instalujeme balík openjdk-7.25.15 z PKGNG.
G3) zprovoznění a zpřístupnění služby
- komprimovaný soubor glassfish-4.0.zip se rozbalí do adresáře /usr/local/glassfish4
- přejde se do adresáře příkazem:
# cd /usr/local/glassfish4/glassfish/bin
- spustí se startovací soubor příkazem:
# sh startserv
- vyzkouší se přístup k serveru z prohlížeče: http://x.y.z.IPv4-jailu:8080
- při snaze o spuštění administrační rozhraní došlo k chybě, protože interní link je nasměrován na http://localhost:4848
- při snaze o vzdálené připojení http://x.y.z.IPv4-jailu:4848 se objeví problém a chybové hlášení o tom, že není povoleno vzdálené připojení k DAS
- běh serveru se v terminálu zastaví příkazem:
# Ctrl+C
- spustí se příkaz pro nastavení administrátorského hesla:
# sh asadmin –host x.y.z.110 –port 4848 change-admin-password
- defaultní nastavení je na uživatel admin a prázdné heslo
- spustí se znovu server příkazem:
# sh startserv
- na hostitelském stroji se otevře další konzole do jailu:
# sudo warden chroot glassfish
- přejde se do příslušného adresáře:
# cd /usr/local/glassfish4/glassfish/bin
- spustí se příkaz:
# sh asadmin
- zadá se příkaz:
# enable-secure-admin
- zavře se druhá otevřená konzole a v té původní se zastaví a znovu spustí server
- znovu se vyzkouší vzdálené připojení k administraci s novým heslem: http://x.y.z.IPv4-jailu:4848
- pokud je přihlášení OK, je možné pokračovat dále
- při použití externě instalované aplikace v jailu by bylo nepříjemné, že by se při startu jailu nespustila automaticky.
- je proto nutné tuto vlastnost nastavit pomocí nástrojů systému TrueOS pomocí několika kroků
- vytvoří se soubor:
# touch /etc/rc.d/glassfish
- do souboru se vloží následující obsah:
#!/bin/sh . /etc/rc.subr name="glassfish" rcvar=glassfish_enable start_cmd="/usr/local/glassfish4/glassfish/bin/startserv" stop_cmd="/usr/local/glassfish4/glassfish/bin/stopserv" load_rc_config $name : ${glassfish_enable:="NO"} run_rc_command "$1"
- nastaví se spouštěcí příznak souboru:
# chmod +x /etc/rc.d/glassfish
- upraví se soubor /etc/rc.conf a přidá se další řádek
glassfish_enable=“YES“
- upraví se soubor: /usr/local/glassfish4/glassfish/bin/startserv, změna je na posledním řádku, který po úpravě vypadá takto:
exec /usr/local/openjdk7/bin/java -jar "$AS_INSTALL_LIB/admin-cli.jar" start-domain "$@"
- upraví se soubor: /usr/local/glassfish4/glassfish/bin/stopserv, změna je na posledním řádku, který po úpravě vypadá takto:
exec /usr/local/openjdk7/bin/java -jar "$AS_INSTALL_LIB/admin-cli.jar" stop-domain "$@"
- zastaví se server a restartuje se jail
- pokud start jailu včetně serveru proběhne bez chybových hlášení, je možné postoupit dál
- pokud je vše OK, tak fungují příkazy:
# service glassfish start
# service glassfish stop
- je možné vyzkoušet přístupy k serveru na portech 8080 a 4848
- nastaví se FW dle pokynů Krok 4, přístupné jsou porty 8080 a 4848
- po novém startu je možné znovu vyzkoušet vzdálené připojení k serveru
- pokud není vzdálené připojení možné, je třeba znovu projít nastavení serveru a FW a případné nedostatky doladit
Velikost jailu a exportovaného souboru jsou následující:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT tank1/usr/jails/glassfish 719M 702G 1,09G /usr/jails/glassfish \---Velikost exportovaného WDN souboru: 383 MBTímto by bylo ukončeno zprovoznění dvou javových serverů. V příštím díle to bude trochu všehochuť – XMPP server, DMS systém a jail pro vývoj Java aplikací.