In recent previous articles I have discussed the use of Vagrant and Puppet for the automated creation of Virtual Machines, for example with various Oracle software components completely installed into them. In this article, I am merely the consumer of goodies. Edwin Biemond published on GitHub the complete set of Vagrant and Puppet configuration files for creating VMs with the SOA Infra database (Oracle Database 11.2.0.4, populated with the RCU installer) and the SOA Suite 12.1.3 run time environment – including Service Bus, see: WebLogic 12.1.3 infra (JRF) with SOA,OSB.

In this article, I will describe the steps I took to actually produce the two VMs using Edwin’s scripts. The visual description of the whole process looks something like the next figure:

Downloaded required software

Next you will have to download the installation files for Java (JDK 7u55), Oracle Database 11.2.0.4, FMW 12.1.3 Infrastructure, SOA Suite 12.1.3 and Service Bus 12.1.3. In my case, all files are downloaded into a single directory:

Note:

the file fmw_12.1.3.0.0_infrastructure.jar was extracted from the V44416-01.zip file that I downloaded from eDelivery (for the FMW 12.1.3 Infrastructure)

the files fmw_12.1.3.0.0_osb_Disk1_1of1.zip and fmw_12.1.3.0.0_soa_Disk1_1of1.zip are actually the renamed versions of V44423_01.zip and V44420_01.zip that I downloaded from eDelivery:

Fusion Middleware

Click on the Oracle Fusion Middleware 12c Media Pack. On the next page, click the Download button for three items:

After downloading, extract fmw_12.1.3.0.0_infrastructure.jar from the V44416-01.zip file. Rename V44423_01.zip and V44420_01.zip to fmw_12.1.3.0.0_osb_Disk1_1of1.zip and fmw_12.1.3.0.0_soa_Disk1_1of1.zip respectively.

Extract the content from the zip file to any directory you fancy, for example c:\temp:

Edit the Vagrantfile – configure the correct software directory

The Vagrantfile contains two vm.synced_folder definitions – one in the soa2admin2 VM and one in the soadb VM. Ensure that both refer the directory on your host system into which you have downloaded the installation software:

Note: you may want to set up an additional shared folder for use later on to exchange files between guest (VM) and host.

If your host machine has plenty of memory resources, you may want to extend the memory allocated to the soa2admin2 VM to for example 6GB – as this will give all WLS servers a little more breathing space:

vb.customize [“modifyvm”, :id, “–memory”, “6144”]

Create the two VMs using Vagrant

Open a command line window and navigate to the biemond-orawls-vagrant-12.1.3-infra-soa-master directory that was extracted from the GIT zip archive.

Type:

vagrant up soadb

This will start the creation of the first VM – with the Oracle Database 11.2.0.4 environment. The RCU installer is executed during the creation of the second VM and then the SOA Infra database schema are created into this database.

In under 10 minutes, the first VM is done:

The VirtualBox manager shows the details for this machine:

Let’s now have Vagrant create the second VM, with the SOA Suite run time middleware components (and install the SOA Infra database at the same time):

Type:

vagrant up soa2admin2

This will start the creation of the second VM.

after 15 minutes and a bit, the second VM is created as well.

The VirtualBox dashboard shows its details:

Note: configuring the logical names for the two VMs in the Windows hosts file (or whatever your host OS is) is useful as well:

10.10.10.5 soadb.example.com 10.10.10.21 soa2admin2.example.com

(in my case in C:\Windows\System32\drivers\etc\hosts)

Testing the SOA Suite 12.1.3 run time environment

A quick test of our new environment is done from the browser. The middleware VM – soa2admin2 – runs on IP address 10.10.10.21. The WebLogic Admin Server is started and can be accessed through the Admin console – http://10.10.10.21:7001/console – and the Enterprise Manager FMW Control 12c: http://10.10.10.21:7001/em.

After logging in with weblogic/weblogic1, the Enterprise Manager dashboard shows up:

In the console, we can inspect the details for the three WLS Managed Servers that were created, and we can start them, for example soa_server1

Once the soa_server1 is running – listening on port 8001 – we can see this reflected in the EM FMW Control:

The Service Bus Console can be accessed at: http://10.10.10.21:7001/servicebus.

Once the BAM Server (bam_server1) has been started, it listens at port 9001. The BAM Composer runs at http://10.10.10.21:9001/bam/composer; login as weblogic/weblogic1.

Note: there is at present a problem with the BAM Data Source that causes the login to the BAM Composer to fail. This problem can be resolved manually: Locate the BamDataSource under Services/Data Sources. Edit the Data Source: open the Transaction tab and enable the option Emulate Two-Phase Commit. Restart the BAM Server to have this change resolve the login issue.

Exactly the same issues exists for the following Data Sources:wlsbjmsrpDataSource (which prevents Message Reports from being created in Service Bus), EDNDataSource, SOADataSource and OraSDPMDataSource.

The VM cannot at present do name resolution for internet domain names. If you want the SOA Suite to be able to reach out to specific domains (such as www.yoursite.com) you have to add the IP address for the site and its logical name to the /etc/hosts file. I will try to find out how to make the name resolution automatic (somewhere between VirtualBox, Linux and my host environment I think something has to give…)

Restarting the VMs and Running WebLogic Admin Server

With vagrant up you can start both machines, with vagrant up soa2admin2 or vagrant up soadb you will again start one of the VMs.

Once the soa2admin2 machine is running, you can connect to it, either using vagrant ssh (which will start your locally installed ssh tool in the proper context) or using Putty. In the latter case, connect to 127.0.0.1 and port 2222 – which is forwarded to the VM s0a2admin2.

Login as vagrant with password vagrant.

To perform the necessary operations, type

sudo su – oracle

To assume the role of user oracle.

Change the directory focus to /opt/scripts/wls:

cd /opt/scripts/wls

And to verify the status of the Node Manager, you can execute

./showStatus.sh

When you discover the Node Manager is not yet running, you can have it started using the following command:

./startNodeManager.sh

It will take a little while, and finally the Node Manager will call in to let you know it is running:

If you check the status again, things will look brighter now:

Note: if at this point the Admin Server is not yet running, then use the next command to have it started:

./startWeblogicAdmin.sh

And from the browser on the host, we can connect again to Admin Server and the other started managed servers

http://10.10.10.21:7001/console

Setting up connnections in JDeveloper

To work with this splendid environment, it is useful to have connections in JDeveloper to the Application Server and the MDS Service.

Create an Application Server connection to:

Username weblogic; Password weblogic1

WebLogic Hostname 10.10.10.21

Port 7001 ; SSL Port 7002

WebLogic Domain: soa_domain

Create an MDS Database Connection to:

name soadb_dev_mds (suggested)

user dev_mds; password Welcome01

Driver thin

Host Name 10.10.10.5; JDBC Port 1521

Service Name: soarepos.example.com

And an MDS Connection based on this Database connection:

Connection Name soa2admin2_soadb (suggested)

Connection Type: DB Based MDS

Connection: soadb_dev_mds

Select MDS Partition: soa_infra

Note: a database connection to user SYS in the soadba database can be created to:

user sys; password Welcome01; role SYSDBA

Driver thin

Host Name 10.10.10.5; JDBC Port 1521

Service Name: soarepos.example.com

Kudos

As always – big kudos to Edwin Biemond for sharing his Vagrant & Puppet configuration with the community. Once all downloads are done, you can create the VMs with a complete running SOA Suite 12c environment within 30 minutes waiting time (and with less than one minute of your personal time. Impressive!

When I look at the managed servers, I can see they are clustered. SoaServer1, BamServer1 and OsbServer1 running mn machine 10.10.10.21 where as SoaServer2, BamServer2 and OsbServer2 are configured to run on 10.10.10.22. I can’t see 10.10.10.22 configured. Is that right? Do we need to create a new machine?

Next I tried “vagrant up mft1admin”. This failed. It looks like it’s looking for “fmw_12.1.3.0.0_infrastructure.jar” which is the previous version. I only had the fmw_12.2.1.0.0_infrastructure.jar. Also it’s looking for this file – “fmw_12.1.3.0.0_mft_Disk1_1of1.zip”. How can I change the configuration file to use 12.2.1?

“fmw_12.1.3.0.0_mft_Disk1_1of1.zip” – Do I need to download this file from edelivery? Please give some more info.

Also I ama looking to install “Oracle Real-Time Integration Business Insight Download”. Just wanted to see how does it work. Any idea how can I install this in soa2admin2?

Thank you Lucas for a fantastic article. I was able to provision both 2 VMs successfully, but i have problem accessing the console (http://10.10.10.21:7001/console). It is to do with the host machine not able to get to the vm. I have put the entry in my host file and i’m able to ssh into the box. Not sure if i need to setup the vm port forward setting for 7001 to get it to work. Anyone experienced similar issues?

great article! I downloaded & installed jdeveloper 12c (mac os) and I seems the creation of soa/osb applications is not possible out of the box. The service bus application is missing in the gallery. A ‘check for updates’ in jdeveloper didn’t help.

Is it really necessary to install the soasuite 12c developer quickstart edition to get a jdeveloper 12c version with osb/soa functionalities ?

I am trying to create a virtual machine with your scripts to soa suite 12c, I tried to modify the scripts because I need to have installed the database and the servers on a single virtual machine but I have not got me, You Might indicate some way to realize it.

For 12c there is no longer a plugin for JDeveloper to do development on SOA Suite/BPM Suite. Instead, you download and install the JDeveloper 12.1.3 Studio edition that contains the design time for SOA Suite and BPM Suite out of the box: http://www.oracle.com/technetwork/middleware/soasuite/downloads/index.html – see text: “Note: The generic SOA Suite Quick Start Installer for developers is used on all platforms. It allows you to quickly install a development or evaluation environment on a single host computer. It includes Oracle BPEL Process Manager, Oracle Human Workflow, Oracle Business Rules, Oracle Mediator, Oracle Service Bus, Technology Adapters Oracle Enterprise Scheduler, SOA Spring Component, Enterprise Manager Fusion Middleware Control, Oracle JDeveloper with SOA IDE extensions and an integrated WebLogic Server and Java DB.”.

i keep getting the following error. Stage[main]/Java/Jdk7::Install7[jdk1.7.0_55]/File[/var/tmp/install/jdk-7 u55-linux-x64.tar.gz]: Could not evaluate: Could not retrieve information from environment production source(s) file:/software/jdk-7u55-linux-x64.tar.gz.

I’ve repeated the steps many times and always end up failing at the same point

I found another thing while trying to install it on another laptop, it may help someone following your article.

If the usename has space in between then somehow it doesnt work. On the second laptop my username is “Rakesh Kumar”. My home directory becomes “C:\Users\Rakesh Kumar”. “.vagrant.d” and “VirtualBox VMs” folders will be created under the home directory during the install.

Some of the steps during the install failed and the VMs did not start properly. I am not sure if it was due to the Virtual Box folder or Vagrant folder under the home folder which has space in between.

I changed the default location of both VirtualBox and Vagrant folders to “C:\SOAVBox” (new folder created). The folders and files were created in this directory and everything worked fine.

thanks a lot Lucas, I wish Oracle would make our life easier by letting us retrieve all their binaries from a maven-structured repository (groupid, artifactid, version)….instead of having to jump through all those manual downloads hoops…