26 kwietnia 2010

Zdumiewająco szybka instalacja i uruchomienie WebSphere AS V8 Alpha na 64-bitowym RedHat EL 5.5

Pisałem już o moim niedawnym postanowieniu związanym z nauką JEE6 z pomocą NetBeans 6.9 i WAS8 (w Nauka JEE6 z WAS8 w NetBeans 6.9 przez rozwój wtyczki j2ee.websphere?), z czym związany był kolejny krok instalacji WAS8 na RedHat Enterprise Linux 5.5 w wersji 64-bitowej. Skąd pomysł na nietypową, 64-bitową wersję RHEL? Cóż, to jest jedyna platforma, na której WAS nie udostępnia graficznego instalatora (!) Za Installing the product on distributed operating systems using the GUI:

The option to launch the Profile Management Tool is only available when a 32-bit version of WebSphere Application Server is installed.

Zresztą tak było od wieków i jak widać szybko się nie zmieni. Doświadczając niedogodności, które są nieobce wielu klientom WASa, zwykłem wybierać najtrudniejszy rodzaj platformy do przeprowadzenia instalacji i późniejszej administracji WASa. Czy to WAS, czy WPS, czy ILOG JRules, idę na całość i wybieram 64 bity z opcją instalacji automatycznej (wydawać by się mogło, że prostszej, ale "automatycznie" znaczy przygotuj wcześniej właściwy plik z odpowiedziami, co dla wielu stanowi wyzwanie same w sobie i nici z prostoty :-)).

Pobrałem właściwe pakiety instalacyjne - IBM Installation Manager for Linux (IM) oraz WebSphere Application Server V8.0 Network Deployment for Linux (wersja udostępniająca tworzenie domeny administracyjnej nazywanej celą, w której możliwe jest również tworzenie klastrów).

To miałem już za sobą, jeszcze przed wyjazdem do Turcji. Dzisiaj wystarczyło jedynie stworzyć obraz VMware z RHEL 5.5 i rozpocząć instalację WAS8. Całość opisana jest we wspomnianym wcześniej dokumencie Installing the product on distributed operating systems using the GUI, co sprowadza się do rozpakowania IM, jego instalacji - tutaj uwaga, bo root uruchamia inny skrypt instalacyjny niż zwykły użytkownik (coś czego nie pamiętam, aby istniało w poprzednich wersjach IM), a później zdefiniowaniu nowego repozytorium z pakietami instalacyjnymi WAS8. Proste, nieprawdaż? Trochę zrzutów ekranu może poprawić nastrój niezdecydowanym, a planującym podobną akcję.

Mamy dwie opcje instalacji WAS8 z pomocą IM - w trybie z połączeniem do Sieci (online) i bez (offline). Repozytoria zdalne są zdefiniowane w IM, więc jeśli się ich nie wyłączy, uruchomienie instalacji pozwoli na wybór wersji WASa - samodzielny WAS lub wersja ND.

W moim przypadku, kiedy instalowałem z pobranymi paczkami instalacyjnymi miałem jedynie WAS ND.

Wybieramy odpowiednią wersję i na kolejnym ekranie wskazujemy katalog domowy produktu - domyślnie /opt/IBM/WebSphere/AppServer.

Następnie wybór opcji instalacyjnych - wybrałem instalację przykładowych aplikacji - Sample applications.

A na kolejnym ekranie, wybór platformy 32-bitowej vs 64-bitowa. Nie pamiętam, aby przy poprzednich wersjach był taki wybór. Jak napisano w dokumentacji "This panel displays only if you are using a 64-bit operating system that has a corresponding 32-bit image".

Później już tylko pozostaje zatwierdzić wybór w panelu podsumowującym...

z zajętością końcowej instalacji na dysku...

i bodajże po...5 minutach (!) WAS8 jest *prawie* gotowy do uruchomienia. To była pierwsza większa niespodzianka przy tej instalacji (kilka mniejszych to wybór platformy 32- vs 64-bitowej oraz różne polecenia do uruchomienia IM dla root vs nie-root).

Przez "prawie" mam na myśli konieczność stworzenia profilu, co z manageprofiles i przygotowanym plikiem odpowiedzi w profileTemplates/default jest niezwykle proste.
[root@localhost AppServer]# ./bin/manageprofiles.sh -create -templatePath profileTemplates/default
INSTCONFSUCCESS: Success: Profile AppSrv01 now exists. Please consult /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/AboutThisProfile.txt for more information about this profile.
[root@localhost AppServer]# pwd
/opt/IBM/WebSphere/AppServer
[root@localhost AppServer]# ./bin/manageprofiles.sh -listProfiles
[AppSrv01]
[root@localhost AppServer]# cat profiles/AppSrv01/logs/AboutThisProfile.txt
Application server environment to create: Application server
Location: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
Disk space required: 200 MB
Profile name: AppSrv01
Make this profile the default: True
Node name: localhostNode01
Host name: localhost
Enable administrative security (recommended): False
Administrative console port: 9060
Administrative console secure port: 9043
HTTP transport port: 9080
HTTPS transport port: 9443
Bootstrap port: 2809
SOAP connector port: 8880
Run application server as a service: False
Create a Web server definition: False
Kolejną niespodzianką był czas uruchomienia WAS8 - niespełna 30 sekund! Jeśli ktokolwiek nazwie WASa "kobyłą", to mógłby mieć na myśli, albo inny produkt, albo...wypowiedź ocenzurowana.
[root@localhost AppSrv01]# ./bin/startServer.sh server1
ADMU0116I: Tool information is being logged in file
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/startServer.log
ADMU0128I: Starting tool with the AppSrv01 profile
ADMU3100I: Reading configuration for server: server1
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server server1 open for e-business; process id is 7358
[root@localhost AppSrv01]# cat logs/server1/SystemOut.log
************ Start Display Current Environment ************
WebSphere Platform 8.0.0.0 [ND 8.0.0.0 kk1009.04] running with process name localhostNode01Cell\localhostNode01\server1 and process id 7358
Host Operating System is Linux, version 2.6.18-194.el5
Java version = 1.6.0, Java Compiler = j9jit24, Java VM name = IBM J9 VM
was.install.root = /opt/IBM/WebSphere/AppServer
user.install.root = /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
Java Home = /opt/IBM/WebSphere/AppServer/java/jre
ws.ext.dirs = /opt/IBM/WebSphere/AppServer/java/lib:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/classes:/opt/IBM/WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/WebSphere/AppServer/web/help:/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime
Classpath = /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/properties:/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/opt/IBM/WebSphere/AppServer/lib/lmproxy.jar:/opt/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batchboot.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/IBM/WebSphere/AppServer/java/lib/tools.jar
Java Library path = /opt/IBM/WebSphere/AppServer/java/jre/lib/amd64/compressedrefs:/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64:/opt/IBM/WebSphere/AppServer/bin::/usr/lib
************* End Display Current Environment *************
[4/26/10 18:12:50:916 CEST] 00000000 ManagerAdmin I TRAS0017I: The startup trace state is *=info.
...
[4/26/10 18:13:17:887 CEST] 00000000 WsServerImpl A WSVR0001I: Server server1 open for e-business
To musi cieszyć każdego, komu przyszło lub przyjdzie dotykać WASa. Widać, że produkt się rozwija i czasy uruchomienia są coraz bardziej imponujące (jeśli do tej pory nie były ;-)).

Teraz uruchomienie konsoli administracyjnej http://localhost:9060/ibm/console i kolejna niespodzianka. Nowiutki ekran logowania!

Niby nic szczególnie funkcjonalnego, ale oko cieszy. Dla mnie cacy.

Powyższy ekran już znajomy dla adminów WAS7 (nie zauważyłem jakiejkolwiek zmiany w stosunku do tej wersji), ale sam komunikat o wersji WASa ujął mnie za serce - 8.0.0.0. Niesamowite!

Tym samym kolejny krok ku nirwanie technologicznej szczęśliwości związanej z JEE6 i WAS8 zrobiony. "That's one small step for [a] man, one giant leap for mankind" :-)

Kolejne zadanie to przestudiowanie nowej specyfikacji Java Servlet 3.0 i uruchomienie przykładowej aplikacji webowej bez deskryptora. Zaplanowałem już wykręcić jakiś maluczki skrinkast. Z nadzieją na ciekawe pomysły, co miałby zawierać i ile miałby trwać, zamieniam się w słuch...