H. XMPP server Openfire
V tomto jailu bude instalována aktuální verze XMPP serveru Openfire. V době vzniku jailu byla v repozitářích k dispozici verze 3.8.1 a na webu projektu 3.8.2. Nyní je i v systému k dispozici verze 3.8.2
H2) instalace programů a aplikací
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.
K tomu se stáhne potřebný instalační balík Openfire:
<a>http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire3_8_2.tar.gz
H3) zprovoznění a zpřístupnění služby
- archiv se rozbalí do adresáře /usr/local/openfire
- přejde se do adresáře:
# cd /usr/local/openfire/bin
- spustí se server příkazem:
# sh openfire start
- připojí se z prohlížeče na administrátorskou konzolu: <a>http://x.y.z.IPv4-jailu:9090
- provede se základní nastavení. Pro zkušební provoz stačí velmi jednoduché nastavení: language=czech, default, vestavěná databáze, profil=výchozí, heslo pro admina
- po dokončení nastavení se nespouští administrátorská konzole, i když je k ní na stránce spouštěcí tlačítko – spuštění nefunguje
- místo toho se restartuje server a znovu se připojí konzole: <a>http://x.y.z.IPv4-jailu:9090
- do serveru se přihlásíme jako administrátor novým heslem, zadaným při nastavení
- na úvodní stránce je kromě jiného přehled portů, která server pro svou činnost používá a potřebuje:
5222 – klient-server – standardní připojení 5223 – klient-server – připojení na SSL 9090 – administrátorská konzole na HTTP 9091 – administrátorská konzole na HTTS 7777 – proxy pro přenos souborů 7070 – připojení klientů na HTTP 7071 – připojení klientů na HTTPS 5229 – umožní flash klientům připojení na jiné hosty a porty
- vytvoří se příslušný soubor:
# touch /etc/rc.d/openfire
. Jeho obsah je v příloze OF-rcd.txt - nastaví se spouštěcí příznak souboru:
# chmod +x /etc/rc.d/openfire
- upraví se soubor /etc/rc.conf a vložit do něj řádek:
openfire_enable=“YES“
- zastaví se server a restartuje jail
- při pokusu o start hlásí server chybu – nenajde JVM
- je tedy nutná úprava souboru /usr/local/openfire/bin/openfire: je třeba odkomentovat příslušný řádek, který musí vypadat např. takto:
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/openjdk7/
- poté jsou funkční obvyklé příkazy:
# service openfire start
# service openfire restart
# service openfire stop
- vyzkouší se znovu připojení administrátorské konzole: <a>http://x.y.z.IPv4-jailu:9090
- nastaví se FW dle pokynů Krok 4, přístupné jsou porty uvedené výše v přehledu. Není povolen port 5229. Konkrétní nastavení FW PF je v příloze OF-fwpf.txt
- vyzkouší se připojení administrátora na portech 9090 a 9091 z hostitelského stroje a vzdáleně
- na serveru je definován pouze jeden uživatel – admin, je tedy pro zkušební účely nutné vytvořit další dva běžné uživatele
- ze stránek projektu se stáhne Jabber klient Spark v aktuální verzi, rozbalí a spustí se jak na hostitelském, tak vzdáleném stroji a vloží se údaje uživatele – Username a Password jsou jasné, do pole Server se vloží IPv4 adresa jailu
- vyzkouší se připojení obou uživatelů na různých strojích a následně pak komunikace mezi oběma klienty obousměrně a také odeslání a přijetí souborů obousměrně
- 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/jabbserv 508M 658G 907M /usr/jails/jabbserv
Velikost exportovaného WDN souboru: 238 MB
Server Openfire je docela zajímavou možností mezi XMPP servery s jednoduchou instalací a bohatými možnosti administrace. Také klient Spark (je možné použít i jeho webovou obdobu SparkWeb) funguje dobře včetně lokalizace do češtiny. Jedná se samozřejmě o aplikaci v Javě.
I. DMS server LogicaDOC
V tomto jailu bude instalován DMS (Document Management System) systém LogicalDOC.
I2) instalace programů a aplikací
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.
Více o samotném projektu je možné najít zde: <a>http://www.logicaldoc.com/en.html
Jak je z webu patrné, aplikace se nabízí ve dvou edicích: Community a Enterprise. Pro zkušební účely samozřejmě použijeme komunitní verzi. Instalační balík je vlastně bundle samotného serveru a příslušné verze Tomcatu – logicaldoc-6.7.1-tomcat-bundle.zip. Stáhnout je ho možné zde:
<a>http://sourceforge.net/projects/logicaldoc/files/latest/download
I3) zprovoznění a zpřístupnění služby
- vytvoří se příslušný adresář:
# mkdir /usr/local/logicaldoc
- do adresáře se nakopíruje rozbalený instalační balík
- otevře se příslušný adresář:
# cd /usr/local/logicaldoc/tomcat/bin
- nastaví se spouštěcí příznak souboru:
# chmod +x catalina.sh
- spustí se soubor příkazem:
# sh catalina.sh run
- počká se, až server úplně nastartuje – objeví se hláška: Server starts in XY sec
- zastaví se server příkazem:
# Ctrl+C
- spustí se server a opět počká na úplný start:
# sh startup.sh
- z prohlížeče se spustí setup: <a>http://x.y.z.IPv4-jailu:8080/logicaldoc/setup
- defaultní login je admin/admin
- provede se základní nastavení dle pokynů v setup administrátoru
- spustí se samotná aplikace: <a>http://x.y.z.IPv4-jailu:8080/logicaldoc
- nastaví se FW dle pokynů Krok 4, jediný přístupný port je 8080
- znovu se vyzkouší vzdálené připojení k setupu i aplikaci
- 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/logdoc 591M 702G 990M /usr/jails/logdoc
Velikost exportovaného WDN souboru: 348 MB
V předchozích krocích není popsáno, jak server spouštět automaticky ve formě služby. Pro daný postup platí obecně to, co bylo již popsáno v minulých dílech a pro zájemce by to neměl být zásadní problém.
Větší problém bude pro případné vážné zájemce někde jinde – komunitní verze je poměrně dost očesaná a hodně funkcí v ní chybí. Kdo by měl zájem, může zakoupit některou z placených verzí. Ty jsou k dispozici tři – Business, Enterprise a Cloud. Cenové relace jsem nehledal. Systém sám o sobě je určitě zajímavý a pro některé firmy by mohl být velmi přínosný. Další možností je použít jinou DMS aplikaci nad PHP, např. LetoDMS atd.
J. Vývoj aplikací v Javě
Tento jail bude na jednu stranu velmi jednoduchý – bude v něm pouze JDK a případné vývojové nástroje pro Javu. Hlavní motivací pro jeho vytvoření bylo vyzkoušet si, jak funguje jail typu Ports. Všechny dříve uvedené jaily byly typu Traditional. To znamená, že se jedná o jaily s vyloženě serverovým zaměřením, kde není možné spouštět žádné grafické aplikace. Typ Ports umožňuje využít grafické možnosti hostitelského systému a jeho X-server. To umožní v jailu spouštět grafické aplikace tak, jako kdyby to byly normální uživatelské aplikace.
Význam tohoto typu jailu zatím vidím spíše v oblasti experimentů a nasazování různých verzí aplikací, aniž by se tím „zanášel“ hostitelský systém.
Jail je možné vytvořit pomocí Warden GUI nebo příkazem: # sudo warden create javadevel – ipv4 x.y.z.w –portjail
Funkci jailu budu demonstrovat na instalaci velmi komplexního Java IDE a to sice IntelliJ IDEA od firmy JetBrains. Pro danou aplikaci nabízí firma dvě verze – placenou Ultimate a volnou Community. Pro Javu je možné použít i komunitní verzi. Její omezení se týkají spíše jiných technologií, jako je Web a další.
K dispozici jsou stabilní verze 12 v kódovým označením Leda:
http://www.jetbrains.com/idea/download/
Kromě toho je možné vyzkoušet vývojovou řadu 13 s označením CARDEA:
<a>http://download.jetbrains.com/idea/ideaIC-130.1486.tar.gz
J2) instalace programů a aplikací
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.
J3) zprovoznění a zpřístupnění služby
- do adresáře /usr/local/idea130 se nakopíruje rozbalený instalační balík
- je nutné zajistit přístup do administrátorské konzole příkazem:
# sudo warden chroot javadevel
- přejde se do příslušného adresáře:
# cd /usr/local/idea130/bin
- aplikace se spustí příkazem:
# sh idea.sh
- je samozřejmě možné provést spuštění přímo příkazem:
# sh /usr/local/idea130/bin/idea.sh
- po spuštění se objeví okno aplikace úplně stejně, jako kdyby byla spuštěná lokálně na hostitelském systému. Rozdíl je samozřejmě v tom, že se veškerá data ukládají do jailu a není možné je přímo uložit do hostitelského systému
- pokud by byl při spouštění problém s odkazem na JVM, je potřeba do spouštěcího souboru idea.sh na začátek vložit řádek:
export JDK_HOME=/usr/local/openjdk7/
- tento typ jailu není bezpečný pro vzdáleném připojení, takže je vhodný pouze pro spouštění v rámci hostitelského stroje
- firewall není nutné nijak nastavovat
- jail je logicky o dost větší, než většina ostatních, ale pořád je mnohem menší a jednodušší na manipulaci, než virtuální stroj s grafickým prostředím. Také má určitě menší nároky na systémové prostředky a rozdíl v odezvě proti přímo instalované stejné aplikaci jsou subjektivně nepozorovatelné.
Velikost jailu a exportovaného souboru jsou následující:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank1/usr/jails/javadevel 3,33G 702G 3,72G /usr/jails/javadevel
Velikost exportovaného WDN souboru: 1 685 MB
V příštím dílu se podíváme na zajímavou NoSQL databázi v jailu a také na celkem rozumné využití jailu typu Ports.