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:
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:
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:
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.
Then click on Download.
Note: you really only have to download two files (out of 7):
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:
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.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:
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:
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
and
and likewise the BPM Worklist application for controlling Human Tasks as http://10.10.10.21:8001/integration/worklistapp
and
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.
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!
Already got a soa, sb etc 12.2.1 cluster environment https://github.com/biemond/biemond-orawls-vagrant-12.2.1-infra-soa but do you want everything on 1 vm . Probably it is for me 5 minutes of works and a hour of testing 🙂
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
Hi, any chance of doing a build for SOA 12.2.1? 🙂 Thanks
Edwin’s current scripts (when downloading https://github.com/biemond/biemond-orawls-vagrant-12.1.3-infra-soa/archive/master.zip) also require p20423408_121300_Generic.zip which can be obtained from http://support.oracle.com.
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
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 ?
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.
How do I ssh to the database vm?
Found it – the soa server port is 2200, the DB server is at 2222
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.
p13390677_112040_LINUX_1(2)of7.zip is aber no go for normal people.
Thanks Lukas, Edwin
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,
what abaut using the XE DB from Oracle?
thanks Lukas
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.
Hi,
I will make a new box with db 12.1 and a simple soa 12.1.3 domain and inform you about the url.
Hi,
here we go https://github.com/biemond/biemond-orawls-oradb-vagrant-12.1.3-infra-soa
It already works only will replace CentOS 6.5 with OEL6.6
Thank you very much for your help, everything works perfectly!
Hi Edwin:
This version installed and started. However, I cannot find the database. There is only the middleware on the VM created.
Any help would be appreciated.
Hi Lucas, hi Edwin,
thank you so much for your work and this blog. I only changed JDK to actual Version (7u71) without any problem. VM with DB und SOA Suite is running perfect.
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.
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.
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
Many Thanks Edwin, that works now
BPM/SOA 12c is in place but what for JDeveloper 12 BPM/SOA plugin ?
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.”.
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
Any idea how to fix this? I’m in the same boat
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
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
Thanks Rakesh for sharing these experiences.
Lucas
It may be the case that the access to this url is blocked from the proxy in our office. I will try it again from home.
https://dl.dropboxusercontent.com/s/np39xdpw05wfmv4/centos-6.5-x86_64.box
Thanks
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
Strange, the link is working for me and is located at my dropbox. Does it work for the database ( vagrant up soadb) .
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…
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
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