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.