Rapid creation of Virtual Machine(s) for SOA Suite 12.1.3 server run time environment – leveraging Vagrant, Puppet and Biemond


imageIn 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, 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:


Prepare your host environment

First of all, prepare your local environment for the use of Vagrant and Oracle VirtualBox, if you have not already done so. The required actions are described in this article –Fastest way to a Virtual Machine with JDeveloper 12.1.3 and Oracle Database XE 11gR2 – on Ubuntu Linux 64 bit – under steps 1 through 4.

Downloaded required software

Next you will have to download the installation files for Java (JDK 7u55), Oracle Database, 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:



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

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


tips for downloading:


The specific database software for can only be downloaded from Oracle Support at this time. Go to https://support.oracle.com and search for patch 13390677 (also see instructions in this article: http://www.snapdba.com/2014/01/oracle-database-11gr2-11-2-0-4-installation-on-oracle-linux-6-4/). Download the software for Linux x86-64.


Then click on Download.


Note: you really only have to download two files (out of 7):



The Java 7 JDK Update 55 can be downloaded from eDelivery, as part of the Fusion Middleware 12c Media Pack. Alternatively, the download site is: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u55-oth-JPR:


make sure you download the JDK for Linux x86-64 (the guest OS) and use the JDK 1.7u55 jdk-7u55-linux-x64.tar.gz file.

The required file JDK 7 JCE policy UnlimitedJCEPolicyJDK7.zip can be downloaded here: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html


Fusion Middleware

The required files for Fusion Middleware are available from the eDelivery cloud at Oracle: https://edelivery.oracle.com.

Search for Fusion Middleware on platform Linux x86-64:


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. from the V44416-01.zip file. Rename V44423_01.zip and V44420_01.zip  to fmw_12. and fmw_12. respectively.

Download Edwin’s Configuration Files

You can download the required files from GitHub in a ZIP-archive using: https://github.com/biemond/biemond-orawls-vagrant-12.1.3-infra-soa/archive/master.zip or you can use Git (related tools) and clone the repository at https://github.com/biemond/biemond-orawls-vagrant-12.1.3-infra-soa.git.

We’ll assume a simple download as ZIP file:


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.


vagrant up soadb

This will start the creation of the first VM – with the Oracle Database 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):


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:    soadb.example.com    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 The WebLogic Admin Server is started and can be accessed through the Admin console – – and the Enterprise Manager FMW Control 12c:


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:


Note that a sample composite is pre-installed: SimpleApproval.

The SOA Composer application can be accessed at




and likewise the BPM Worklist application for controlling Human Tasks as




The Service Bus Console can be accessed at:

Once the BAM Server (bam_server1) has been started, it listens at port 9001. The BAM Composer runs at; 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…)


The database VM (soadb) runs on IP address It hosts an Oracle Database ,Release

The operating system users:

  • root vagrant
  • vagrant vagrant
  • oracle oracle

Welcome01 is the password for the Database users SYS and SYSTEM. (see configuration details in https://github.com/biemond/biemond-orawls-vagrant-12.1.3-infra-soa/blob/master/puppet/hieradata/soadb.example.com.yaml)

Restarting the VMs and Running WebLogic Admin Server

The VMs can be stopped and started using vargant. With

vagrant halt

you will stop both machines.


vagrant halt soadb


vagrant halt soa2admin2

you will stop the specified VM.

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 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



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


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

image.pngIf you check the status again, things will look brighter now:

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


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


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
  • 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; 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; JDBC Port 1521
  • Service Name: soarepos.example.com



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!

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press books: Oracle SOA Suite 11g Handbook and Oracle SOA Suite 12c Handbook. Frequent presenter on community events and conferences such as JavaOne, Oracle Code and Oracle OpenWorld.


    • Thanks. 12.2.1 – soadb and soa2admin2 worked fine.

      When I look at the managed servers, I can see they are clustered. SoaServer1, BamServer1 and OsbServer1 running mn machine where as SoaServer2, BamServer2 and OsbServer2 are configured to run on I can’t see 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.” which is the previous version. I only had the fmw_12. Also it’s looking for this file – “fmw_12.”. How can I change the configuration file to use 12.2.1?

      “fmw_12.” – 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?

      I know too many questions but I would really appreciate your reply:)


  1. Thank you Lucas for a fantastic article.
    I was able to provision both 2 VMs successfully, but i have problem accessing the 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?



  2. 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 ?

  3. Thanks a lot for the article Lucas and a bigHug for Edwin for his “WebLogic 12.1.3 SOA & Database on 1 VM” repository on GitHub.
    I’m up and running on 1 VM.

  4. How do I ssh to the database vm?

    Found it – the soa server port is 2200, the DB server is at 2222

  5. Very nice. Both VMs are cranking. Super fast too. Don’t know what is the difference but a SOA 12c VM that I built ground up runs nowhere as fast.

  6. p13390677_112040_LINUX_1(2)of7.zip is aber no go for normal people.
    Thanks Lukas, Edwin

  7. I found linuxamd64_12102_database_Xof2 but I cannot meke the soadb: dependencies error.

    “The centos people changed the package names on yum
    libXext.i686 and libXtst.i686 should now have x86_64 as extension instead of i686.
    You can change this in de os class of the db manifest class”

    Can you be more specific on “You can change this in de os class of the db manifest class”: which class/jar.

    Thanks Lukas,

  8. Hi Lucas/Edwin,

    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.

    I hope your answer, thanks.

  9. Hi Lukas, I tried several times same steps, always I am getting the followintg exceptions. Am I doing some thing wrong? Appreciate your inputs

    => soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Listener[start listener]/Exec[
    istener start start listener]: Skipping because of failed dependencies
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Database[oraDb]/File[/var/tmp/i
    stall/database_oraDb.rsp]: Dependency Package[libXext.i686] has failures: true
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Database[oraDb]/File[/var/tmp/i
    stall/database_oraDb.rsp]: Dependency Package[libXtst.i686] has failures: true
    => soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Database[oraDb]/File[/var/tmp/
    nstall/database_oraDb.rsp]: Skipping because of failed dependencies
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Database[oraDb]/Exec[oracle dat
    base oraDb]: Dependency Package[libXext.i686] has failures: true
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Database[oraDb]/Exec[oracle dat
    base oraDb]: Dependency Package[libXtst.i686] has failures: true
    => soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Database[oraDb]/Exec[oracle da
    abase oraDb]: Skipping because of failed dependencies
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Dbactions[start oraDb]/Exec[sta
    t oracle database start oraDb]: Dependency Package[libXext.i686] has failures:
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Dbactions[start oraDb]/Exec[sta
    t oracle database start oraDb]: Dependency Package[libXtst.i686] has failures:
    => soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Dbactions[start oraDb]/Exec[st
    rt oracle database start oraDb]: Skipping because of failed dependencies
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Autostartdatabase[autostart ora
    le]/Exec[set dbora soarepos:/oracle/product/11.2/db]: Dependency Package[libXex
    .i686] has failures: true
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Autostartdatabase[autostart ora
    le]/Exec[set dbora soarepos:/oracle/product/11.2/db]: Dependency Package[libXts
    .i686] has failures: true
    => soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Autostartdatabase[autostart or
    cle]/Exec[set dbora soarepos:/oracle/product/11.2/db]: Skipping because of fail
    d dependencies
    => soadb: Info: Creating state file /var/lib/puppet/state/state.yaml
    => soadb: Notice: Finished catalog run in 103.37 seconds
    he SSH command responded with a non-zero exit status. Vagrant
    ssumes that this means the command failed. The output for this command
    hould be in the log above. Please read the output to determine what
    ent wrong.

  10. I tried several times creating soadb VM, but fails with the following, am I doing any thing wring?

    ==> soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Dbactions[start oraDb]/Exec[st
    art oracle database start oraDb]: Skipping because of failed dependencies
    ==> soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Autostartdatabase[autostart ora
    cle]/Exec[set dbora soarepos:/oracle/product/11.2/db]: Dependency Package[libXex
    t.i686] has failures: true
    ==> soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Autostartdatabase[autostart ora
    cle]/Exec[set dbora soarepos:/oracle/product/11.2/db]: Dependency Package[libXts
    t.i686] has failures: true
    ==> soadb: Warning: /Stage[main]/Oradb_11g/Oradb::Autostartdatabase[autostart or
    acle]/Exec[set dbora soarepos:/oracle/product/11.2/db]: Skipping because of fail
    ed dependencies
    ==> soadb: Info: Creating state file /var/lib/puppet/state/state.yaml
    ==> soadb: Notice: Finished catalog run in 105.03 seconds
    The SSH command responded with a non-zero exit status. Vagrant
    assumes that this means the command failed. The output for this command
    should be in the log above. Please read the output to determine what
    went wrong.

    • Edwin Biemond on


      The centos people changed the package names on yum
      libXext.i686 and libXtst.i686 should now have x86_64 as extension instead of i686.
      You can change this in de os class of the db manifest class

    • Hi Francesco,

      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.”.

  11. danirod08@gmail.com on

    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

    • Make sure you have these 2 files in the install directory:
      JDK 1.7u55 jdk-7u55-linux-x64.tar.gz

      Second one very easy to miss. I eneded up repeating the install few times before I realized that I was missing the second file. The download instructions are there just after the jdk download.

      • Unfortunately, they are all there. I have triple checked all the files and they are there… I’ve read it could be something in the pp file related to the URI being passed

  12. Hi Lucas / Edwin,

    The link worked from home. In the office it was probably blocked by the office proxy / network.

    I did miss a step about downloading UnlimitedJCEPolicyJDK7.zip and ended up trying to install few times with failures before I realized my mistake.

    Once that was done, everything wroked fine. Both the VM’s installed successfully and were up and running. I could login to the the OEM / Console / started SOA server etc.


    There’s a minor issue though:

    When I connect through putty to port 2222 then it gets forwarded to soadb not s0a2admin2. How do I connect to s0a2admin2?




    • Got that. To connect to soa2admin2 I need to connect on port 2200. I started the soadb first so it’s on port 2222.

      Note: I restarted my laptop. Then started Oracle VM VirtualBox Manager console, then started the soadb VM and then soa2admin2.

      I noticed that in the console it still shows Powered Off even though the VM’s started.

      Next, soa2admin2 started but the Node Manager and Admin Server wasn’t running. Loggged on using putty and started the Node Manager and Admin Server from the scripts located in: /opt/scripts/wls

      Is this the normal behaviour?


      • Lucas Jellema on

        Hi Rakesh,

        I am seeing that same behavior – so to that extent it is normal. If you would not halt the VMs but instead suspend & resume them, you would not have to restart the node manaher and admin server.

        kind regards


        • Hi Lucas,

          Thanks for the suspend and resume tip.

          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.



  13. Thanks a lot for the article Lucas.

    I am trying to do the install by following everything on this article.

    It failed on the following step :- Create the two VMs using Vagrant

    After running the command: vagrant up soadb
    It fails with the error: Could not resolve host: (nil); Host not found

    Looks like it cant find the file:

    I cant access this from browser as well.

    Any idea what’s wrong?


    • Edwin Biemond on

      Strange, the link is working for me and is located at my dropbox. Does it work for the database ( vagrant up soadb) .

  14. Pierluigi Vernetto on

    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…

    • Lucas Jellema on

      That would be nice indeed! Well, maybe in the near future. I am already pretty happy with the whole automation once the downloads are complete.


  15. Edwin Biemond on

    Thanks Lucas,

    You can speed up the starting process by defining more memory to the vagrant / vbox image
    ( this configuration is the minimal edition, when you only have 8gb memory in your pc )

    I think your soa image is using the swap file a lot 🙂

    Change in this file

    The following value
    soa2admin2.vm.provider :virtualbox do |vb|
    vb.customize [“modifyvm”, :id, “–memory”, “2548”] <|—- , change this to 5032 or higher

    This is the py template of the domain, where you can see, I assigned 1.5gb max mem to almost all the servers.