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

39
Share this on .. Tweet about this on TwitterShare on LinkedIn40Share on Facebook0Share on Google+2Email this to someoneShare on Tumblr0Buffer this page

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

image

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

image

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:

image

tips for downloading:

Database

The specific database software for 11.2.0.4 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.

image

Then click on Download.

image

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

image

Java

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:

image

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

image

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:

image

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

image

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.

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:

SNAGHTML536d840

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

image

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:

image

image

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.

image

In under 10 minutes, the first VM is done:

image

The VirtualBox manager shows the details for this machine:

image

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.

image

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

image

The VirtualBox dashboard shows its details:

image

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.

image

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

image

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

image

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

image

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

The SOA Composer application can be accessed at http://10.10.10.21:8001/soa/composer

image

and

image

and likewise the BPM Worklist application for controlling Human Tasks as http://10.10.10.21:8001/integration/worklistapp

image

and

image

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

Database

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

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.

With

vagrant halt soadb

or

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 127.0.0.1 and port 2222 – which is forwarded to the VM s0a2admin2.

image.png

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

SNAGHTML5dd698a.png

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:

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:

./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!

Share this on .. Tweet about this on TwitterShare on LinkedIn40Share on Facebook0Share on Google+2Email this to someoneShare on Tumblr0Buffer this page

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director for Fusion Middleware. Consultant, trainer and instructor on diverse areas including Oracle Database (SQL & PL/SQL), Service Oriented Architecture, BPM, ADF, JavaScript, Java 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 conferences such as JavaOne and Oracle OpenWorld. Presenter for Oracle University Celebrity specials.

39 Comments

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

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

      Thanks

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

    Thanks

    Michael

  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 12.1.0.1 on 1 VM” repository on GitHub.
    I’m up and running on 1 VM.

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

  5. 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,

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

  7. 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:
    rue
    => soadb: Notice: /Stage[main]/Oradb_11g/Oradb::Dbactions[start oraDb]/Exec[sta
    t oracle database start oraDb]: Dependency Package[libXtst.i686] has failures:
    rue
    => 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.

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

      Hi,

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

  9. 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
      UnlimitedJCEPolicyJDK7.zip

      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

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

    https://drive.google.com/file/d/0B0OstjOE1DYEY2oyMVpKcjFRRUk/edit?usp=sharing

    There’s a minor issue though:

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

    https://drive.google.com/file/d/0B0OstjOE1DYEcFF6eFhmZVRWbmc/edit?usp=sharing

    Thanks,

    Rakesh

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

      Thanks

      • 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

        Lucas

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

          Regards,

          Rakesh

  11. 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:
    https://dl.dropboxusercontent.com/s/np39xdpw05wfmv4/centos-6.5-x86_64.box

    I cant access this from browser as well.

    Any idea what’s wrong?

    Thanks
    Rakesh

    • 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) .

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

      thanks
      Lucas

  13. 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
    https://github.com/biemond/biemond-orawls-vagrant-12.1.3-infra-soa/blob/master/Vagrantfile

    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.

    https://github.com/biemond/biemond-orawls-vagrant-12.1.3-infra-soa/blob/master/puppet/modules/orawls/templates/domains/domain_osb_soa_bpm.py.erb

    cheers

Leave a Reply