None

IBM Websphere Portal in linux containers [part1]


We are posting here an IBM Websphere Portal 8.5 CF08 highly available installation using linux containers (lxc).

By Kostas Koutsogiannopoulos

In the following post we are using linux containers instead of virtual machines, for lightweight isolation and portability.

The supported linux platforms for Websphere Portal are Red Hat Enterprise Linux and SUSE Linux Enterprise Server (SLES) 11. For details check this.

So we begin bulding an SLES container inside a clean SLES 11.2 virtual machine. After clean installation we run:

~# zypper in lxc
~# lxc-create -n sles -t sles

The "sles" container just created is portable so we can copy root file system living at /var/lib/lxc/sles directory to another linux server and boot the container there.

For our example we are using an ubuntu 14.04 LTS server as the hypervisor of all our containers.

We are migrating our container to remote host using rsync:

~# rsync -aAXHltzh -e ssh --progress --numeric-ids /var/lib/lxc/sles user@remotehost:/var/lib/lxc/

Check container's configuration file:

cat /var/lib/lxc/sles/config

# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)
# Common configuration
lxc.include = /usr/share/lxc/config/opensuse.common.conf
# Container specific configuration
lxc.arch = amd64
# Network configuration
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:fa:86:34
lxc.rootfs = /var/lib/lxc/sles/rootfs
lxc.utsname = sles

List the containers:

~# lxc-ls --fancy
NAME  STATE    IPV4  IPV6  GROUPS  AUTOSTART  
--------------------------------------------
sles  STOPPED  -     -     -       NO         
~# lxc-start -n sles # The container is starting up
~# lxc-attach -n sles # To attach to a running container's console

sles:~ #

Now we have our sles container up 'n running.
We can configure our repositories, update it and install GNOME needed for IBM installation manager to install IBM software with GUI.

~ # zypper update

Confirmation:
~ # cat /etc/SuSE-release 
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 4

~ # zypper install --auto-agree-with-licenses -y -t pattern x11 gnome

Now we are up-to-date with gnome:
~ # logout
Connection to 10.0.3.145 closed.

From the hypervisor:

~ # lxc-ls --fancy
NAME  STATE    IPV4        IPV6  GROUPS  AUTOSTART  
--------------------------------------------------
sles  RUNNING  10.0.3.145  -     -       NO         

Test it from host machine like that:

ssh -X root@10.0.3.145
~ # xclock

...and confirm that graphical clock appears:

Now we are ready to install IBM Installation Manager in our container and use it as a template for all the portal nodes.

At first we extract the IM 1.8.3 package inside the container:

~ # mkdir /var/lib/lxc/sles/rootfs/IBM_packages
~ # unzip agent.installer.linux.gtk.x86_64_1.8.3000.20150606_0047.zip -d /var/lib/lxc/sles/rootfs/IBM_packages/

From the container's console (ssh -X root@10.0.3.145) we run:

~ # /IBM_packages/install

Edit the file /etc/security/limits.conf adding the following:
* soft nofile 65535
* hard nofile 65535

Shutdown the container:

# lxc-stop -n sles

At this point we have a working SLES container with IBM Installation Manager, ready to clone it as many times as we need for IBM Webshere Portal software installation and every node.

Lets clone it to crete portal's primary node "wsp1":

~ # lxc-clone sles wsp1
~ # lxc-ls --fancy

NAME  STATE    IPV4  IPV6  GROUPS  AUTOSTART  
--------------------------------------------
sles  STOPPED  -     -     -       NO         
wsp1  STOPPED  -     -     -       NO         

Edit /var/lib/lxc/wsp1/config for network configuration of your preference:

lxc.include = /usr/share/lxc/config/opensuse.common.conf

lxc.rootfs                       = /var/lib/lxc/wsp1/rootfs
lxc.utsname                      = wsp1
lxc.arch                         = amd64
lxc.network.type                 = veth
lxc.network.veth.pair            = vethMyContainer
lxc.network.link                 = lxcbr0
lxc.network.ipv4                 = 10.0.3.11/16
lxc.network.ipv4.gateway         = 10.0.3.1
lxc.network.flags                = up
lxc.network.hwaddr               = 00:16:3e:aa:bb:cc

Extract the packages for Portal installation inside the root file system of the container:

unzip WSP_Server_8.5_Install.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/
unzip WSP_Enable_8.5_Install.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/
unzip WSP_Enable_8.5_Setup.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/
unzip WSA_Server_NetDeplo_8.5.5.2.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/
unzip WS_SDK_JAVA_TECH_7.0.6.1.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/

Now fire up "wsp1" container and launch Installation Manager:

~ # lxc-start -n wsp1
~ # lxc-ls --fancy

NAME  STATE    IPV4      IPV6  GROUPS  AUTOSTART  
------------------------------------------------
sles  STOPPED  -         -     -       NO         
wsp1  RUNNING  10.0.3.11 -     -       NO         

~ # ssh -X root@10.0.3.11

~ # /opt/IBM/InstallationManager/eclipse/launcher

 

Go to File > Preferences and add the repositories like the screenshots:

 

After 15 minutes we have the following packages installed at "wsp1":

WS_SDK_JAVA_TECH_7.0.6.1.zip
WSA_Server_NetDeplo_8.5.5.2.zip
WSP_Enable_8.5_Install.zip
WSP_Enable_8.5_Setup.zip
WSP_Server_8.5_Install.zip

Delete extracted packages:

~ # rm -r /var/lib/lxc/wsp1/rootfs/IBM_packages/*

In order to update portal to CF08, we need to follow the steps in this order: Update Websphere to 8.5.5.7 > Install SDK7 fix to Websphere product > Install CF08 > Apply fix

Extract the packages for websphere 8.5.5 fix pack 7 inside the container as we did with the installation:

~ # unzip 8.5.5-WS-WAS-FP0000007-part1.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/
~ # unzip 8.5.5-WS-WAS-FP0000007-part2.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/

Change the repositories and update Websphere via Installation Manager to version 8.5.5.7

Extract the package 7.0.1.0-WS-WASJavaSDK7-LinuxX64-IFPI50092.zip inside the container:

~ # unzip 7.0.1.0-WS-WASJavaSDK7-LinuxX64-IFPI50092.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/

Change the repositories and update Websphere via Intalation Manager.

Extract the packages for cumulative fix 08 inside the container:

~ # unzip WP8500CF08_Server.zip -d /var/lib/lxc/wsp1/rootfs/IBM_packages/

Change the repositories and update portal to CF08 via Installation Manager

Delete extracted packages:

~ # rm -r /var/lib/lxc/wsp1/rootfs/IBM_packages/*

Run apply fix:

~ # /opt/IBM/WebSphere/wp_profile/PortalServer/bin/applyCF.sh -DPortalAdminPwd=<password> -DWasPassword=<password>

Wait patiently for 15 - 20 minutes. In the end you will have IBM Websphere Portal updated and running.

Check your portal at http://10.0.3.11:10039/wps/myportal/

 

In the following post we will create a container with db2 instance, we 'll transfer the database, and make the portal installation highly available.


View epilis's profile on LinkedIn Visit us on facebook X epilis rss feed: Latest articles