You might have seen the announcement a couple of months ago of IBM acquiring           SoftLayer, a leading provider of cloud computing infrastructure.   SoftLayer provides a simple way to create and manage an off-premise private or public cloud infrastructure.

In this article I will describe the steps I took to get IBM Integration Bus Version 9 installed and running on SoftLayer servers.  You might want to do this as part of establishing an off-premise cloud environment that includes integration capability, or for managing a pool of integration servers for development and testing.

SoftLayer provides several ways to create servers.  One way is to create a “Cloud Computing Instance”, which is a single server with your choice of operating system, processor, memory, storage etc.  Another way is to create a “Bare Metal Computing Instance” which provides a Hypervisor, such as VMWare ESXi, along with the machine and network that you specify.  You can then create multiple virtual machines on that Hypervisor using your own images.

SoftLayer provides a variety of different billing methods for servers; you will need a SoftLayer account to follow these instructions. SoftLayer provides a one-month free Cloud Computing instance that you could use for the first approach.

In this article, I cover two approaches to create a server and install and configuring IBM Integration Bus (“IIB”) Version 9:

  1. Install IBM Integration Bus v9 Developer Edition on a SoftLayer Cloud Computing Instance
  2. Create an IIB Virtual Machine on a SoftLayer Bare Metal Computing Instance using the IIB v9 Hypervisor Edition

In a future article, I’ll cover automation of the installation and configuration so servers that have IIB and other software can be set up easily and consistently.

Note that this article covers installing and configuring an IIB runtime on a SoftLayer server only.  Additional steps are required to connect message flows running on the SoftLayer server to the resources and endpoints that the message flows use if they are outside the SoftLayer network.

You can get more detail on supported platforms in the IBM Integration Bus v9 System Requirements.  Support for IBM Integration Bus in virtualized environments is limited to issues with the product itself.  These instructions on how to set up the SoftLayer Cloud Computing and Bare Metal Instances are provided on an as-is basis and support is only provided through the comments on this blog and other related forums. The set-up steps described here were verified at the time of going to press but may be subject to change in future versions of the management web pages and virtualization software.

Install IBM Integration Bus v9 Developer Edition on a SoftLayer Cloud Computing Instance

In this section I’ll describe how to create a server which is a SoftLayer Cloud Computing Instance and install IBM Integration Bus v9 on that server. In this case the IBM Integration Bus Developer Edition runtime is installed on the SoftLayer server, while the Integration Toolkit and Integration Explorer are assumed to have already been installed on your local machine.  When this procedure is complete you will be able to connect to the IBM Integration Bus node on the SoftLayer server from your local Integration Toolkit.  The procedure has the following steps:

  1. Create a SoftLayer Server
  2. Get IBM Integration Bus Developer Edition
  3. Transfer files to the SoftLayer server
  4. Install IBM Integration Bus runtime on the SoftLayer server
  5. Create a simple MQ and Integration Bus configuration on the softLayer server
  6. Deploy to and manage the Integration Bus runtime

Create a SoftLayer Server

To create a SoftLayer server, starting from the SoftLayer Management Web Page:

  1. From the Sales tab, select “add monthly computing instance”.
  2. On the first page you can select the data center, processor, RAM and networking.  For the IBM Integration Bus runtime, I chose 2 cores with 4GB RAM and default settings for networking.  The page also allows you to specify the number of instances to create a set of identical servers if you wish.
  3. The next page covers storage choices; I chose a 100GB local disk and took the default settings for everything else.
  4. Next select the O/S and software. I chose “Red Hat Enterprise Linux 6 – Minimal Install (64 bit) (1-4 Core)” with no additional software.
  5. Page 4 describes management services, firewall etc. I just accepted the defaults.
  6. The final page is where you specify configuration for the server: SSH keys, host and domain name (I used softlayer.com but you may want to use your own domain name here), and an optional provisioning script with associated metadata which would be the basis for automated software install and configuration.

Once you have selected the items in the steps, it should take around an hour for the server to be created and set up for you. While you are waiting, you can download the IBM Integration Bus software to install.

Get IBM Integration Bus Developer Edition

Download IIB Developer Edition runtime for RHEL 64bit. The edition includes everything you need to run IBM Integration Bus including a copy of MQ 7.5.0.1, the Integration Toolkit and Integration Explorer. You can use this for free for development purposes.

You can download the IBM Integration Bus runtime and toolkit as separate packages and for Windows or Linux operating systems.  For the purposes of this article, I downloaded the runtime package for Linux and the toolkit package for Windows.  If you don’t already have IBM Integration Bus Developer Edition installed on your local machine, you can use the toolkit package for your local machine’s OS to install the toolkit and Integration Explorer so that you can remotely manage and deploy to the IBM Integration Bus node on the SoftLayer server.

Transfer files to the SoftLayer server

Once you have downloaded the IBM Integration Bus Developer Edition runtime install image to your local machine, you then need to transfer the image to the SoftLayer server you have just created. There are several options, such as SCP, FTP, and SoftLayer’s Object Storage. Although less secure that the others, FTP is the quickest option. To use FTP, you need to install an FTP daemon on the server. I chose VSFTPD for this example.

Once your SoftLayer server is ready, log in via SSH using the public IP address and root password given in the server properties page. To find the IP address and password navigate to the SoftLayer management page, select the CloudLayer tab and Computing menu item then click on your Computing Instance in the list.  Once logged in to the server, set up the FTP daemon: the following commands show the approach for VSFTPD.  The blue-arrowed text indicates what you need to edit in each of the files and is not part of the commands:

yum install vsftpd
vi /etc/vsftpd/vsftpd.conf     <- disable anonymous access
vi /etc/vsftpd/ftpusers        <- comment out root
vi /etc/vsftpd/user_list       <- comment out root
service vsftpd start
chkconfig vsftpd on

Now that the FTP daemon is running, you can use FTP from your local machine to copy the install image to the SoftLayer server:

ftp <softlayer-server-ip>
user: root
password: ********
bin
put 9.0.0-IIB-LINUXX74-DEVELOPER-RUNTIME.tar.gz
quit

Once this is done, use the SSH session to extract the install image on the SoftLayer server:

tar -zxvf 9.0.0-IIB-LINUXX74-DEVELOPER-RUNTIME.tar.gz

This extracts the files into a subdirectory named “messagebroker_ia_developer”.

Install IBM Integration Bus runtime on the SoftLayer server

The next step is to run the Linux installer. I chose to base this on the supplied installAllSilent.sh script which is in the messagebroker_ia_developer/sample-scripts directory. However, for this article I’m only installing the IIB runtime and MQ prerequisite, and not Integration Toolkit or Integration Explorer as I already have those installed on my local machine and I will connect from them to the SoftLayer server.  I edited the script file to remove the check for the toolkit and the toolkit and explorer install steps:

cd messagebroker_ia_developer/sample_scripts
vi installAllSilent.sh  <- remove failure check for toolkit – if statement: if [ ! -d $ITK_INSTALL_IMAGE ]; and delete the last few lines that install Toolkit/Explorer
sh installAllSilent.sh -ACCEPT_ALL_LICENSES

Create a simple MQ and Integration Bus configuration on the SoftLayer server

There are a few steps to set up a default configuration of the MQ and IBM Integration Bus runtime.  When connecting from your local machine to the integration node on the SoftLayer server you need to ensure that the user under which you are running the Integration Toolkit has authority to access the MQ resources that are associated with the integration node.

First set up permissions for the root user and the user on your local machine to access MQ. In an SSH session on the SoftLayer server type the following commands:

adduser <local machine user name>
usermod -G mqm -a <local machine user name>
usermod -G mqm -a root

After you do this you will need to log out of the server and back in again so that MQ can pick up the change in permissions. Next create the Queue manager for the integration node (I chose to name mine “SLIB9QMGR”) and enable remote connection for the queue manager, so that you can connect from a local Integration Toolkit or Integration Explorer to the runtime on the SoftLayer server.  Note that here I’m creating the MQ and Integration Bus objects under root for convenience; recommended practice is to create them under a separate user to allow greater control over what the products are able to do. Enter these commands in an SSH session on the SoftLayer server:

crtmqm SLIB9QMGR
strmqm SLIB9QMGR
runmqsc SLIB9QMGR
DEFINE LISTENER(SLIB9QMGR.SLIB9QMGR) TRPTYPE(TCP) PORT(2414)
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN)
START LISTENER(SLIB9QMGR.SLIB9QMGR)
ALTER QMGR CHLAUTH(DISABLED)
END

Finally create the integration node (named “SLIB9NODE”) and an integration server (named “FIRST”). The “mqsiprofile” needs to be run first to set up the environment before the mqsi commands will work:

. /opt/ibm/mqsi/9.0.0.0/bin/mqsiprofile
mqsicreatebroker SLIB9NODE -q SLIB9QMGR
mqsistart SLIB9NODE
mqsicreateexecutiongroup SLIB9NODE -e FIRST

You now have a running integration node and server that is ready for integration applications to be deployed.

Deploy to and manage the IBM Integration Bus runtime

To connect to this integration node from the Integration Explorer running on your local machine:

  1. Start Integration Explorer on your local machine.
  2. Add the remote queue manager by specifying the IP address of the SoftLayer server and port 2414.
  3. Add the remote integration node by right-clicking on “Integration Nodes” > “Connect to a remote Integration Node…”, then specifying the SoftLayer Host IP address, queue manager name (SLIB9QMGR) and port 2414

To connect to the integration node from the Integration Toolkit:

  1. Start Integration Toolkit on your local machine.
  2. Right-click “Integration Nodes” in the “Integration Nodes” view, select “Connect to a remote Integration Node”, specifying the IP address, Queue Manager name (SLIB9QMGR) and port (2414).

You can now deploy integration applications to the integration server on this node, as well as creating new integration servers on the node and starting/stopping them.

Create an IIB Virtual Machine on a SoftLayer Bare Metal Computing Instance using the IIB v9 Hypervisor Edition

Virtual Machines can be created on a SoftLayer Bare Metal Computing Instance, which allow you to set up multiple identical machines with a fully-specified configuration and set of software.  IBM Integration Bus Version 9 provides a Hypervisor Edition which has all of the IBM Integration Bus components (Runtime, Toolkit, Explorer) and MQ prerequisite pre-installed. The following sections describe a way you can set this up, with the following steps:

  1. Create a new SoftLayer Bare Metal Computing Instance
  2. Enable public IP access to the Bare Metal Management Server
  3. Install local vSphere client
  4. Transfer HVE image to datastore
  5. Identify the IP address for the IIB Virtual Machine
  6. Create the IIB Virtual Machine

For the purposes of this article I chose to make the Bare Metal Management server accessible via a public IP address, while the IBM integration Bus virtual machines are on a private network.

Create a new SoftLayer Bare Metal Computing Instance

Set up a SoftLayer Bare Metal Computing instance by starting from the SoftLayer Management Web Page:

  1. From the Sales tab, select “Add monthly bare metal instance”
  2. On the first page I chose first available data center, “4 x 2.0 GHz Core Bare Metal Instance – 4 GB Ram” as the Bare Metal Instance, and left the rest of the settings at the default values.
  3. On the second page I accepted the default storage settings.
  4. On the Software page I selected “VMWare ESXi 5.1” as the operating system and everything else as default values.
  5. I accepted the default settings on the Services page.
  6. The final page is where you specify the host and domain name for the management server, again I chose to use softlayer.com as the domain.

You will need to also request IP addresses for the Virtual Machines. I chose to request a block of 8 portable addresses on the internal network for my VMs once the Bare Metal Instance provisioning was complete.

  1. Select Cloudlayer then Bare Metal Computing
  2. In the list, select your bare metal instance, and then on its property page under network “eth0 (private)” click the request additional IP addresses link. Make a note of the VLAN ID, in my case 959.
  3. Request 8 portable private IP addresses. Select the VLAN for your private network from the previous step.
  4. Fill in the required contact information that needs to be associated with the IP addresses.

When the server is provisioned, it will be listening on a SoftLayer private 10.x.x.x IP address. This is only accessible via the SoftLayer VPN, or another one of your existing SoftLayer hosts which has access to the same private VLAN.  In order to connect via VPN you will need to ensure you have SSL access enabled:

  1. From the management page, select Private network -> VPN.
  2. Check your user ID has “SSL Access” box selected.
  3. Open a browser to https://sslvpn.networklayer.com/
  4. Log in, and accept installation of the client VPN software.

I did have some issues doing this from different machines, if this does not work you may need to check your firewall settings to allow Java to run on the web page and to allow the Array Networks VPN processes to connect to the internet

Enable public IP access to the Bare Metal Management Server

The next step is to enable public IP access to the management VM.  This is not necessary for every configuration however file upload via the VPN is very slow and the file sizes for the Hypervisor Edition are very large. An alternative approach would be to upload the Hypervisor files to a SoftLayer staging server on the same VLAN as the Bare Metal Instance and then transfer the file to the Bare Metal Instance across that local network.

To enable public IP access you will need to log in to the Bare Metal server through the IPMI server as described below.  I did try performing this reconfiguration via the VMWare vSphere client, however when changing the management network IP address I always ended up with an unreachable server.  Before you perform these steps, note down the Server Address, Gateway and Netmask values for the Bare Metal instance’s public network as you will need to provide these towards the end of the procedure.

  1. From the SoftLayer management page go to CloudLayer -> Bare Metal Computing.
  2. Click on your bare metal server in the list.
  3. Under the Network Section, click on the “IPMI” address link.  This resulting page shows the IPMI information, including the IPMI IP address, user ID and password.
  4. Log in to the SoftLayer VPN as above.
  5. Point your browser at the IPMI IP address http://<IPMI IP address>/ and log in with the IPMI user id and password.  This will show a web page with a preview image of the server console.  Click on this preview image to open the remote console.
  6. Accept any requests to install software. Once this is done you should have a console window with a message at the bottom <F2> Customize System/View Logs.
  7. Hit F2 to reconfigure.  If this gives a pop up asking if you are sure, hit no, then from the iKVM window menu select Virtual Media->Virtual Keyboard and click F2 on that keyboard.  Close the keyboard window.  You should now see a login request that looks like this:
  8. Log in with the server’s root password as shown on the server properties web page (not the IPMI password) and you then see the system customization screen, part of which is shown here:
  9. Select Configure Management Network (by pressing down arrow, enter)
  10. Select Network Adapters, and enable vmnic1 (and vmnic3 if it exists) and disable vmnic0 and vmnic2,  hit enter when done, resulting in the following settings:
  11. Select OK to accept this configuration, then from the Configure Management Network page select IP Configuration and set the IP (Server) Address, Subnet Mask and Default Gateway to the values for the public network in the server properties page:
  12. That completes the network reconfiguration to enable public IP access to the management server.  Select escape, you’ll be asked to confirm the changes, press Y to accept.

Once that procedure has been completed, you can log in to the Management server from the vSphere client via the public IP address.

Install local vSphere client

In order to manage your Virtual Machines, you need the vSphere client installed locally. If you do not have vSphere Client installed, navigate to the public URL of the Bare Metal Instance (http://<Instance IP address>/), which you enabled in the previous step.  This will display the ESXi web page prompting you to download the vSphere client and install it. When installed, start the vSphere Client and log in, using the server’s public IP address, vmadmin (not root) id and password.

When you first start the vSphere Client you should be in the “Home” location with an Inventory icon. Click on the Inventory icon and you should then see your ESXi server along a tabbed display.  Click on the “Configuration” tab and then select “Networking” in the “Hardware” section.  Following the modification done previously via the IPMI interface, the networking configuration on my bare metal server looked like the following:

You may only see vmnic0 and vmnic1, in which case ignore references below to vmnic2 and vmnic3.

To complete the network configuration, you need to rename the port groups and attach the internal network physical adapter(s) to vSwitch1.  The port group names are just descriptive text but to avoid confusion its best to remove the incorrect vmnic text.  The vSwitch1 physical adapter must be added in order to be able to contact the VM through the internal network.  Perform the following steps:

  1. Click vSwitch0 “Properties…” link
  2. On the Ports tab select “Private Network – vmnic0 vmnic2”
  3. Click Edit then change the Network Label value to “Public Network” and click OK then Close.
  4. Click vSwitch1 “Properties…” link
  5. On the Ports tab select “Public Network – vmnic1 vmnic3”,
  6. Click Edit then change the Network Label value to “Private Network” and click OK.
  7. On the Network Adapters tab click Add…
  8. Tick the box next to vmnic0 (and vmnic2 if you have it).
  9. Click Next, Next, Finish then Close.

Check that the networking configuration looks like the following:

Transfer HVE image to datastore

Note: transferring the image to the datastore may take a few hours.  The transfer only needs to be done once; after that creation of new VMs is extremely fast.

First you need to download the IIB Hypervisor Edition.  You need to download the “IBM Integration Bus Hypervisor Edition V9.0 for Red Hat Enterprise Linux Server for x86 eAssembly”. Once the file is downloaded, in order to reduce issues with networking and allow more flexibility in uploading the HVE, I would recommend unzipping the HVE package and creating two .ZIP files for the OS and APP parts.  I used the 7z utility, as it can handle these large file sizes, to create two files:

  1. IIB_HE_9.0_RHEL_x86_OS.zip containing os-flat.vmdk, os.vmdk, wmbhve.vmx. license directory
  2. IIB_HE_9.0_RHEL_x86_APP.zip containing app-flat.vmdk, app.vmdk

To upload HVE zip files to the server in the vSphere client application:

  1. Go to Configuration > Storage.
  2. Right-click datastore, select browse datastore…
  3. Create a folder – I named it “iib9hve”.
  4. Upload the IIB_HE_9.0_RHEL* zip files to this folder.

Using the public IP address my average transfer speed was approximately 300Kb/s, around 5 hours for both transfers.

Note: I had trouble using the ESXi built-in unzip command with handing these large files, getting the error “unzip: short read”. I installed p7Zip and used that: http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2/download. I uploaded the p7zip install image to the datastore as above into a p7zip directory.

To unpack the HVE files ready to create a VM:

  1. Use SSH to access the server. Log in with the root ID and password.
  2. Go to the datastore directory (/vmfs/volumes/datastore1/p7zip) unpack and install p7zip.
    Note: I needed to modify p7zip’s install.sh to change BASE_DIR to /usr and ran install.sh.
  3. Go into the iib9hve directory and unzip the packages (this takes a few minutes):

cd /vmfs/volumes/datastore1/iib9hve
7z x IIB_HE_9.0_RHEL_x86_OS.zip
7z x IIB_HE_9.0_RHEL_x86_APP.zip

You should now have the necessary .vmdk and .vmx files in your datastore. Note that each pair of .vmdk files is shown as a single “Virtual Disk” in the datastore browser:

Note: when deleting any VMs you have created, don’t use the delete from disk option or it will delete these vmdk files.

Identify the IP address for the IIB Virtual Machine

Once you have confirmation that the IP addresses you requested have been allocated, you can select one of the IP addresses for the IBM Integration Bus VM and update the notes to indicate it is in use.

  1. In the SoftLayer management page, navigate to Private network > IP Manager:
  2. Click on the vlan for the Bare Metal instance.
  3. Expand by clicking the “>” symbol and click on the newly allocated subnet.
  4. Pick the next available IP in the list. You can add a note to indicate that the address is in use.

Create the IIB Virtual Machine

The instructions for doing this are included in “Deploying a VMWare image” in the IIB Version 9 infocenter in step 2(d), and are copied here as the following:

d.  Register the virtual image on the hypervisor. In the vSphere client Datastore Browser, right-click the file wmbhve.vmx and select Add to inventory, which starts a wizard.
e.  Enter a name for the virtual machine image and select Next.  Here I chose “iibvm1”.
f.   Select the Resource Pool in which to run the virtual machine and then select Next.
g.  Check that the virtual machine options are correct and select Finish.

Configure the network settings for the Virtual Machine:

a.  In the vSphere Client Inventory view, right-click the virtual machine which has been added, and select Edit Settings from the menu.
b.  Select Network Adapter 1 in the hardware panel. In the Network Connection panel, select the network to which the virtual machine will connect from the Network label pull-down menu.  In this case it is the internal network (vSwitch1) which was named “Private Network” in a previous step. This means a VPN connection will be needed to get to the VM.
c.  Click OK.

Before you power on the Virtual Machine, you should gather the following information required to configure the VM IP network:

  • IP Address: the portable IP address that you allocated from the group of portable IP addresses.
  • Net Mask: the value that is shown on the bare metal instance’s private (not public) network settings (in my case 255.255.255.192).
  • Gateway Address: the gateway associated with the portable IP address, shown in the same subnet page as the IP address you allocated.
  • DNS: Get this value from the vSphere Console, Configuration tab, Software section, “DNS and Routing” properties (in my case primary DNS is 10.0.80.11).
  • Host name: I used the VM name (iibvm1).
  • Domain: I used the same domain name as the bare metal instance.

Once you have collected this information, you can start up the Virtual Machine:

  1. In the vSphere client select the Virtual Machine in the Inventory and click the Power On button in the toolbar.
  2. Navigate to the Console tab to open the virtual machine console.
  3. Note: If a pop-up window appears asking whether the virtual machine image has been moved or copied, select “I copied it” and click OK.
  4. Wait for the system to complete booting.  Note: you may see an error message “ERROR: No AP/OVF-ENV file found. Exit.

    Press Enter at this point and log in with default “root”/”password”.

  5. You will then be prompted for networking configuration, provide the information gathered earlier.

Once the server is up and running, you can set up a default configuration via the VM remote console as follows:

  1. From the vSphere client, select the Virtual Machines tab, right click your virtual machine in the list and select “Open Console”.
  2. Once the console is running you should see the VM’s desktop.  From the Applications menu select Integration Toolkit > Integration Toolkit 9.0.0.0.
  3. From the Integration Toolkit’s “Getting Started” window you can use the supplied wizard to create the default configuration.

Once that is complete, you can use the Integration Toolkit on the VM to develop and deploy integration applications.  If you have an Integration Toolkit on your local machine you can also connect it to the runtime on the VM, as explained in the previous example.  As the VM is on the private network you will need to log in to the SoftLayer VPN first, and also ensure that you’ve added your local user to the mqm group on the VM to enable MQ connection.

Summary

This article shows how to set up a SoftLayer-hosted server and install and run software on it – in this case IBM Integration Bus – either through a traditional product install, or by using a Hypervisor Edition.  You can get everything working without leaving your desk, plugging in a cable or hitting a switch.

In a future article I will cover automation of the software install and configuration so that you can create a predictable middleware environment that incorporates IBM Integration Bus and other components. That automation will apply to locally hosted machines as well as off-premise servers, such as those provided by SoftLayer.

 

Join The Discussion

Your email address will not be published. Required fields are marked *