Hlavní navigace

PC-BSD jails – serverové aplikace a služby (Openfire, LogicaDOC a Java)

2. 9. 2013
Doba čtení: 7 minut

Sdílet

V minulém díle našeho seriálu o jails byly popsány instalace a zprovoznění dvou jailů s Java webovým a aplikačním serverem. V dnešním dílu zamíříme na trochu rozdílné oblasti a popíšeme si XMPP server, DMS systém na webové Javě a trochu specifický jail, který obsahuje prostředí pro vývoj aplikací v Javě.

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.igniterealti­me.org/downloads/download-landing.jsp?file=openfire/o­penfire3_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/pro­jects/logicaldoc/files/la­test/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.jetbra­ins.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í:

root_podpora

# 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. 

Byl pro vás článek přínosný?