IBM Websphere Portal in linux containers [part3]
We are completing the installation with IBM HTTP servers and with Load Balancer for IPv4.
In the previous post we created two new containers. One for db2 database server and one for the additional node for the portal server cluster.
So the picture is:
~ # lxc-ls --fancy
NAME STATE IPV4 IPV6 GROUPS AUTOSTART
------------------------------------------------------
dbserver RUNNING 10.0.3.100 - - NO
sles STOPPED - - - NO
wsp1 RUNNING 10.0.3.11 - - NO
wsp2 RUNNING 10.0.3.12 - - NO
Now we need two HTTP server and a load balancer.
Firstly we are cloning our base template:
~ # lxc-clone sles http1
Created container http1 as copy of sles
We are configuring the new container:
~# cat /var/lib/lxc/http1/config
# 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:9a:45:72
#lxc.rootfs = /var/lib/lxc/wsp1/rootfs
#lxc.utsname = wsp1
lxc.rootfs = /var/lib/lxc/http1/rootfs
lxc.utsname = http1
lxc.arch = amd64
lxc.network.type = veth
lxc.network.veth.pair = vethhttp1
lxc.network.link = lxcbr0
lxc.network.ipv4 = 10.0.3.21/24
lxc.network.ipv4.gateway = 10.0.3.1
#lxc.network.script.up = /var/lib/lxc/wsp1/script-up.sh
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:aa:bb:c3
Now boot http1:
~# lxc-start -n http1
~# lxc-ls --fancy
NAME STATE IPV4 IPV6 GROUPS AUTOSTART
------------------------------------------------------
dbserver RUNNING 10.0.3.100 - - NO
http1 RUNNING 10.0.3.21 - - NO
sles STOPPED - - - NO
wsp1 RUNNING 10.0.3.11 - - NO
wsp2 RUNNING 10.0.3.12 - - NO
For the installation we need the following packages:
- WSA_Server_NetDeplo_8.5.5.2.zip
- 8.5.5-WS-WAS-FP0000007-part1.zip
- 8.5.5-WS-WAS-FP0000007-part1.zip
- WAS_V8.5.5_SUPPL_1_OF_3.zip
- WAS_V8.5.5_SUPPL_2_OF_3.zip
- WAS_V8.5.5_SUPPL_3_OF_3.zip
- 8.5.5-WS-WASSupplements-FP0000007-part1.zip
- 8.5.5-WS-WASSupplements-FP0000007-part2.zip
- 8.5.5-WS-WCT-FP0000007-part1.zip
- 8.5.5-WS-WCT-FP0000007-part2.zip
So extract them inside the container, run Installation Manager, configure the repositories and follow the steps in screenshots:
At the end of the installation run "Profile Management Tool":
Now stop http1 container:
~ # lxc-stop -n http1
Clone it http1 to create http2:
~ # lxc-clone http1 http2
Created container http1 as copy of sles
Edit /var/lib/lxc/http2/config:
# cat /var/lib/lxc/http2/config
# 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:9a:45:72
#lxc.rootfs = /var/lib/lxc/wsp1/rootfs
#lxc.utsname = wsp1
lxc.arch = amd64
lxc.network.type = veth
lxc.network.veth.pair = vethhttp2
lxc.network.link = lxcbr0
lxc.network.ipv4 = 10.0.3.22/24
lxc.network.ipv4.gateway = 10.0.3.1
#lxc.network.script.up = /var/lib/lxc/wsp1/script-up.sh
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:bc:68:48
lxc.rootfs = /var/lib/lxc/http2/rootfs
lxc.utsname = http2
Boot http2:
~ # lxc-start -n http2
Delete the existed was profile:
http2:~ # /opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -listProfiles
[Custom01]
http2:~ # /opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -delete -profileName Custom01
INSTCONFSUCCESS: Success: The profile no longer exists.
Run "Profile Management Tool" and follow the steps as http1 for custom profile creation.
After successfull profile creation go to deployment manager console https://10.0.3.11:9043/ibm/console:
Servers > Server Types > Web servers > New
Add two new web servers one on http1Node01 and one on http2Node02.
Start the http servers from deployment manager.
Generate and propagate the plugin-cfg.xml
Add to httpd.conf on each web server the following lines:
http1:
LoadModule was_ap22_module /opt/IBM/WebSphere/Plugins/bin/64bits/mod_was_ap22_http.so
WebSpherePluginConfig /opt/IBM/HTTPServer/Plugins/config/http1/plugin-cfg.xml
http2:
LoadModule was_ap22_module /opt/IBM/WebSphere/Plugins/bin/64bits/mod_was_ap22_http.so
WebSpherePluginConfig /opt/IBM/HTTPServer/Plugins/config/http2/plugin-cfg.xml
Start web servers from deployment manager and check the urls:
- http://10.0.3.21/wps/portal/
- http://10.0.3.22/wps/portal/
Now we need a load balancer in front of IBM http servers. In our installation we are using "Load Balancer for IPv4" from IBM WebSphere Edge Components.
We begining with "sles" cloning:
~ # lxc-clone sles lb1
Created container lb1 as copy of sles
Edit the config file of "lb1":
~ # cat /var/lib/lxc/lb1/config
# 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:9a:45:72
#lxc.rootfs = /var/lib/lxc/wsp1/rootfs
#lxc.utsname = wsp1
lxc.rootfs = /var/lib/lxc/lb1/rootfs
lxc.utsname = lb1
lxc.arch = amd64
lxc.network.type = veth
lxc.network.veth.pair = vethlb1
lxc.network.link = lxcbr0
lxc.network.ipv4 = 10.0.3.33/24
lxc.network.ipv4.gateway = 10.0.3.1
#lxc.network.script.up = /var/lib/lxc/wsp1/script-up.sh
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:aa:bb:c6
Boot "lb1":
~ # lxc-start -n lb1
Extract load balancres packages inside the container:
unzip Edge_Com_LB_IPV4_IPV6_WASNDv8.5.5.zip -d /var/lib/lxc/lb1/rootfs/IBM_packages/1
unzip 8.5.5-WS-EDGEULB-FP0000007.zip -d /var/lib/lxc/lb1/rootfs/IBM_packages/2
unzip WSEDGE_CPT_LB_IPV4\&IPV6_WASND_8.5.zip -d /var/lib/lxc/lb1/rootfs/IBM_packages/3
Launch Installation Manager and configure the repositories:
/opt/IBM/InstallationManager/eclipse/launcher
Follow all the step to complete the installation. Then run the dispatcher server and then wizard:
/opt/IBM/WebSphere/Edge/ULB/bin/dsserver start
/opt/IBM/WebSphere/Edge/ULB/bin/dswizard
Follow all the step to complete the installation. Then run the dispatcher server and then wizard:
/opt/IBM/WebSphere/Edge/ULB/bin/dsserver start
/opt/IBM/WebSphere/Edge/ULB/bin/dswizard
Setup your cluster address www.epilis.com:
Add your cluster nodes:
Follow the loopback instuctions.
Add the record beloow at hypervisors /etc/hosts with your cluster ip:
10.0.3.50 www.epilis.com
Check url from hypervisor http://www.epilis.com/wps/portal:
Conclussion
~ # lxc-ls --fancy
NAME STATE IPV4 IPV6 GROUPS AUTOSTART
------------------------------------------------------
dbserver RUNNING 10.0.3.100 - - NO
http1 RUNNING 10.0.3.21 - - NO
http2 RUNNING 10.0.3.22 - - NO
lb1 RUNNING 10.0.3.33 - - NO
sles STOPPED - - - NO
wsp1 RUNNING 10.0.3.11 - - NO
wsp2 RUNNING 10.0.3.12 - - NO
As you can see we created 6 native linux containers and a template for our setup. We may need another passive load balancer in order to make our installation fully highly available.
~ # du -hsc /var/lib/lxc/*
7,7G /var/lib/lxc/dbserver
7,1G /var/lib/lxc/http1
7,1G /var/lib/lxc/http2
3,1G /var/lib/lxc/lb1
2,8G /var/lib/lxc/sles
15G /var/lib/lxc/wsp1
15G /var/lib/lxc/wsp2
57G total
All our servers (websphere portal profiles and IBM HTTP servers) are easily managed from deployment manager running on "wsp1" container. Native linux containers are ideal for rapid deployments in a linux hypervisor.
- Posted by Kostas Koutsogiannopoulos · Nov. 13, 2015