Build an E-Business Suite 12.1.3 sandbox in VirtualBox with one hour of work

[I originally posted this over at the Pythian blog. If you're not following it, you should! Way more content, by far smarter people than lil ol' me.]

Self-directed learning about a product as complex as Oracle E-Business Suite can be challenging. Oracle helpfully provides a pre-built environment (called 'Vision') for training purposes. Configuring a viable training or "sandbox" environment on a workstation can be pretty daunting, however, considering:

  1. The memory and storage resources required to run a "small" Vision instance
  2. The need to install and configure the OS and a list of pre-requisite patches and packages
  3. Learning about the installer itself, which is straightforward but can be a little quirky, especially without careful attention to item #2!
  4. Learning enough about basic EBS administration to turn the darn thing on and start playing

Over time, improved specs for workstations have made item #1 less of a problem. There is ample documentation to cover items 2-4, and several people (including yours truly) have written basic bootstrap guides to help people get up and running quickly. Then Oracle went a step further and released Oracle VM templates for EBS (and updated them earlier this year), which eliminate the need for all of the fiddly stuff in steps 2-3, except for one small detail: They only run in Oracle VM Server, and maintaining an Oracle VM environment is a resource-intensive endeavor by itself.

This blog post aims to change all that. Are you ready to learn how to deploy the Oracle VM templates in Oracle VirtualBox, so you can run them on your own workstation without the need to run Oracle VM Server? I hope you are, because let me tell you, I've done a lot of typing. Whew.

Oh, and that "One hour of work" line in the title is not a mere advertising gimmick! There are long steps at the beginning, but they're mostly hands-free (downloading and converting the OVM templates, steps 1-3 below). After you've gone through that, you really can have a working EBS 12.1.3 Vision instance up and running in a little over an hour. Let's begin...

Ingredients

You will need:

  1. At least 3.5 GB of free memory (2 GB for the database server, 1.5 for the application server). You may be ok to use 1.5GB and 1GB, respectively, but I have not done rigorous testing on useable lower limits. Bottom line: If you have 4GB of RAM in your workstation, this may still work, but it will be a tight fit.
  2. A recent version of Oracle VirtualBox. Virtualbox installation instructions are beyond the scope of this post, but it's a straighforward install.
  3. A lot of storage, for reasons that will become clear later. ~700GB. Fortunately, 1TB USB drives are pretty cheap these days, and you can reclaim some of the space when you're done with this exercise.
  4. A Linux install ISO image (or physical CD, if you're into that sort of thing). I used Oracle Enterprise Linux 5, Update 6, but any relatively recent OEL or RHEL install image should do the job here.
  5. An understanding of some basic Linux systems administration tasks
  6. Familiarity with configuring storage and network options in Virtualbox
  7. Familiarity with the EBS Rapid Clone (adcfgclone) utility, or willingness to blindly follow instructions and cross your fingers. :)
  8. Patience. There are large downloads involved, and then operations on some pretty big files.

Important notes

Nothing you're about to read in this post is supported by anyone. Not me, not Pythian, and certainly not Oracle. If you're thinking about using the techniques described here for any sort of production or QA deployment, please stop and question your sanity. Then call a few colleagues over to your desk and ask them to question your sanity.

Please be mindful of your licensing and support status for Oracle E-Business Suite when experimenting with your "sandbox" E-Business Suite instances. EBS is subject to a far more restrictive evaluation license than the more-familiar OTN development license.

Presumably, the basic method described in this post could be applied to convert other OVM templates. I haven't tried this yet, but there is no EBS-specific magic here. For that matter, with a bit of adjustment, one should also be able to deploy these and other OVM templates under VMware workstation products.

As with many things you'll find on the intertubes, this is not an original idea. I took my inspiration from the following blog posts, and am grateful to their authors for sharing:

Finally, you'll note a Unix-y bias to my instructions. :) I've done my VirtualBox work on OS X, but all the principles are the same for Windows and Linux hosts. You'll need to be able to concatenate and uncompress some files, an ssh client to connect to your VMs, and use a command-line utility that comes with your VirtualBox install (VBoxManage). That's about it from the host (workstation) side. The guests (VMs) are all Linux, of course, there's no getting around that!

HOWTO: The short version

Here are the basic steps, so you know what you're in for. This may actually be enough to get some readers 95% of the way there, but there are a few tweaks required along the way. I advise checking the more detailed instructions below, as well, particularly steps 6,9, 11, and 14.

  1. Download the OVM EBS 12.1 Vision database and app tier templates from the Oracle Software Cloud thingy (formerly E-Delivery)
  2. Unzip all the zip files, and unzip those contents as well
  3. Convert the disk image files from the two VM templates to .vdi format
  4. Boot the database server from the Linux ISO in rescue mode, and install a non-Xen version of the Linux kernel
  5. Reboot and configure the EBS database
  6. Boot the application server from the Linux ISO in rescue mode, and install a non-Xen version of the Linux kernel
  7. Reboot and configure the EBS application server
  8. Play on!

HOWTO: The long version (with screenshots and everything!)

  1. Download the software
    Connect to Oracle's Software Delivery Cloud and download the files listed under Oracle VM Templates for Oracle E-Business Suite Release 12.1.3 Vision Media Pack for x86 (64 bit). You'll need all 11 files (V25323-1.zip through V25333-01.zip). I also recommend clicking the "View Digest " button near the top of the download page, and running md5sum on each of the downloaded zip files to make sure the checksums match that list.
  2. Extract the templates
    Note: If you're using Windows and don't have a Unix-like shell environment like Cygwin available, you may have to translate some of these steps to their Windows-y equivalents. Since we're just concatenating and uncompressing files, I will assume you can do that. :-)

    • Unzip all the files you just downloaded (unzip 'V25*.zip'). This will produce two sets of files: OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM.tgz.[0-7] (database tier template) and OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM.tgz.[0-2] (apps tier template).
    • Concatenate and uncompress the two sets of files:
      zathras:OVM jpiwowar$ time cat /Volumes/Software/OVM1213Templ/OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM.tgz.* | tar xvz
      x OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/
      x OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/ebs1211db.img
      x OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/System.img
      x OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/vm.cfg
      x OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/README.txt
      
      real	84m53.974s
      user	12m44.096s
      sys	5m13.680s
      zathras:OVM jpiwowar$ time cat /Volumes/Software/OVM1213Templ/OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM.tgz.* | tar xvz
      x OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/
      x OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/vm.cfg
      x OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/ebs1211apps.img
      x OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/README.txt
      x OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/System.img
      
      real	16m11.327s
      user	2m42.887s
      sys	1m11.960s
    • When complete, you should have two directories:
      zathras:Valen jpiwowar$ ls -lh OVM_OL5U6_X86_64_EBIZ12.1.3_*
      OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM:
      total 105194496
      -rwxrwxrwx  1 jpiwowar  jpiwowar    20K Nov  4 19:44 README.txt
      -rwxrwxrwx  1 jpiwowar  jpiwowar   5.2G Nov  4 19:47 System.img
      -rwxrwxrwx  1 jpiwowar  jpiwowar    45G Nov  4 19:44 ebs1211apps.img
      -rwxrwxrwx  1 jpiwowar  jpiwowar   448B Nov  4 19:15 vm.cfg
      
      OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM:
      total 514145024
      -rwxrwxrwx  1 jpiwowar  jpiwowar    20K Nov  4 22:28 README.txt
      -rwxrwxrwx  1 jpiwowar  jpiwowar   5.2G Nov 13 02:59 System.img
      -rwxrwxrwx  1 jpiwowar  jpiwowar   240G Nov  4 22:24 ebs1211db.img
      -rwxrwxrwx  1 jpiwowar  jpiwowar   434B Nov  4 22:28 vm.cfg
      

      Incidentally, the README files contain a few interesting tidbits about the environment you're building. I recommend reviewing them while waiting for Step 3 to complete. :)

  3. Convert the disk images to .vdi format

    Open a command/terminal window and use the VBoxManage utility to convert the raw disk images (.img) to vdi files. The utility is installed with VirtualBox; you may need to find the utility first and add it to your path (location varies by host platform). Timings listed in the examples below are provided to set expectations for how long you'll need to wait for the conversion to complete. Note that I was doing this on a slow 5400rpm drive on my laptop; you may get better performance. To save yourself some confusion later when attaching the converted disks to your VMs, I strongly recommend changing the name of 'System' image files to something uniquely identifiable, as shown below.

    Note: I'm running VirtualBox on OS X, and the installer dropped VBoxManage into /usr/bin for me, so it's already in my path. Presumably you'll find a similar situation in Linux. If you're on Windows, and haven't customized your install, you should be able to find VBoxManage.exe in Program Files/Oracle/VirtualBox.

    zathras:OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM jpiwowar$ time VBoxManage convertfromraw /Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/System.img EBS121AppRoot.vdi; time VBoxManage convertfromraw /Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/ebs1211apps.img ebs1211apps.vdi
    Converting from raw image file="/Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/System.img" to file="EBS121AppRoot.vdi"...
    Creating dynamic image with size 5535613440 bytes (5280MB)...
    
    real	3m39.852s
    user	0m1.814s
    sys	0m7.244s
    Converting from raw image file="/Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_APPS_VIS_PVM/ebs1211apps.img" to file="ebs1211apps.vdi"...
    Creating dynamic image with size 48323520000 bytes (46085MB)...
    
    real	32m22.239s
    user	0m14.037s
    sys	1m22.806s
    
    zathras:OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM jpiwowar$ time VBoxManage convertfromraw /Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/System.img EBS121DBRoot.vdi; time VBoxManage convertfromraw /Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/ebs1211db.img ebs1211db.img.vdi
    Converting from raw image file="/Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/System.img" to file="EBS121DBRoot.vdi"...
    Creating dynamic image with size 5535613440 bytes (5280MB)...
    
    real	3m54.990s
    user	0m1.561s
    sys	0m7.082s
    Converting from raw image file="/Volumes/Io/OVM/OVM_OL5U6_X86_64_EBIZ12.1.3_DB_VIS_PVM/ebs1211db.img" to file="ebs1211db.img.vdi"...
    Creating dynamic image with size 257706247680 bytes (245768MB)...
    
    real	193m12.402s
    user	1m10.258s
    sys	10m15.028s
    
    
  4. Create two new Virtualbox VMs
    You'll need one VM for the apps server and one for the database server. I'm assuming you know how to create VMs in Virtualbox already, so I will not go into excruciating, screenshot-laden detail. Here are the requirements for each VM...
    • OS: Oracle Linux, 64-bit
    • CPUs: 1
    • Device boot order: CD-ROM, Hard Disk
    • Memory: 2GB for db server, 1GB for app server
    • Storage: Attach Linux installation ISO to CD/DVD drive on the IDE controller, and attach the two vdi files to the SATA controller
    • Network: Two network interfaces - 1 host-only (vboxnet0), and 1 NAT. I set this up to allow the VMs to communicate between themselves and get out to the internet for patches and updates. If you have a favorite preferred configuration for your VMs that also achieves these goals, please feel free to use that instead. :)

    The screenshots below illustrate the final configurations of the db and app servers:

  5. Boot the database server VM in rescue mode from the install CD

    Enter "linux rescue" at the the boot: prompt to enter rescue mode:

    Select the keyboard and language preferences that suit you, and enable both network interfaces (for now, just select "use IPv4" and "DHCP" when configuring eth0 and eth1, unless you have strong opinions. These settings are temporary):

    (repeat the steps above for the second interface, eth1)

    After setting up the network interfaces, progress therough the menus ("Continue" and "OK" in my case) until you get to a linux prompt, and switch to the root volume as instructed: # chroot /mnt/sysimage
    Optional step: start the sshd service and connect to the VM from your host via ssh, instead of performing the next few steps from the console of the VM. Use 'ifconfig eth0' to find the IP address to use. (Note: as listed in the README in the template directory, the root password for both VMs is 'ovsroot')
    # service sshd start

  6. Update configuration files
    The kernel modules that are loaded to support the Xen kernel are not going to work with the non-Xen kernel, so we need to update modprobe.conf to match our target kernel version:
    [root@localhost ~]# cp /etc/modprobe.conf /etc/modprobe.conf.xen
    [root@localhost ~]# cat /etc/modprobe.conf
    alias eth0 xennet
    alias scsi_hostadapter xenblk
    [root@localhost ~]# vi /etc/modprobe.conf
    "/etc/modprobe.conf" 3L, 78C written
    [root@localhost ~]# diff /etc/modprobe.conf /etc/modprobe.conf.xen
    1,3c1,2
    < alias eth0 e1000
    < alias scsi_hostadapter ata_piix
    < alias scsi_hostadapter1 ahci
    ---
    > alias eth0 xennet
    > alias scsi_hostadapter xenblk
    [root@localhost ~]# cat /etc/modprobe.conf
    alias eth0 e1000
    alias scsi_hostadapter ata_piix
    alias scsi_hostadapter1 ahci
    

    Update /etc/fstab to disable automatic fsck on /u01, or you'll be sitting for a little while at boot time:

    [root@localhost ~]# vi /etc/fstab
    "/etc/fstab" 8L, 608C written
    [root@localhost ~]# grep /u01 /etc/fstab
    LABEL=ebs1211db         /u01                    ext3    defaults        1 0	
    

    Finally, edit /etc/sysconfig/oraclevm-template to disable template configuration at boot time. Otherwise, you'll have to run through all these steps on the console, no matter what else happens at boot time, and that's annoying.

    [root@localhost ~]# vi /etc/sysconfig/oraclevm-template
    "/etc/sysconfig/oraclevm-template" 27L, 929C written
    [root@localhost ~]# grep RUN_ /etc/sysconfig/oraclevm-template
    #RUN_TEMPLATE_CONF=YES
    RUN_TEMPLATE_CONF=NO
    
  7. Install a new kernel (this isn't as scary as it sounds...it's not the late 90's anymore)

    Virtualbox can't boot the Xen kernel that supports para-virtualized operation under OVM, so we need to replace it with a standard kernel of the same version. One way to do this is to install the correct kernel version from the install media, but just in case you're using media that isn't the same as what's installed in the OVM template (OEL5 update 6), we'll use the Oracle public yum server instead (that's why we've configured and activated the NAT interface):

    [root@localhost etc]# cd /etc/yum.repos.d
    
    [root@localhost yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el5.repo
    --2012-11-15 00:25:26--  http://public-yum.oracle.com/public-yum-el5.repo
    Resolving public-yum.oracle.com... 141.146.44.34
    Connecting to public-yum.oracle.com|141.146.44.34|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 3974 (3.9K) 
    Saving to: `public-yum-el5.repo'
    
    100%[==========================================================================================> 3,974       --.-K/s   in 0s     
    
    2012-11-15 00:25:26 (316 MB/s) - `public-yum-el5.repo' saved [3974/3974]
        
    

    Update the public-yum-el5.repo file and set enabled=0 for every source except ol5_u6_base:

    [root@localhost yum.repos.d]# vi public-yum-el5.repo   
    "public-yum-el5.repo" 111L, 3974C written
    [root@localhost yum.repos.d]# grep -B5 'enabled=1' public-yum-el5.repo | grep ']'
    [ol5_u6_base]
    

    Install the OEL5 update 6 (2.6.18-238) kernel form the Oracle public yum server:

    [root@localhost yum.repos.d]# yum install kernel-2.6.18-238.el5
    ol5_u6_base                                                                                                  | 1.1 kB     00:00    
    ol5_u6_base/primary                                                                                          | 1.5 MB     00:02    
    ol5_u6_base                                                                                                               4551/4551
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package kernel.x86_64 0:2.6.18-238.el5 set to be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ====================================================================================================================================
     Package                     Arch                        Version                             Repository                        Size
    ====================================================================================================================================
    Installing:
     kernel                      x86_64                      2.6.18-238.el5                      ol5_u6_base                       19 M
    
    Transaction Summary
    ====================================================================================================================================
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 19 M
    Is this ok [y/N]: y
    Downloading Packages:
    kernel-2.6.18-238.el5.x86_64.rpm                                                                             |  19 MB     00:23    
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : kernel                                                                                                       1/1
    
    Installed:
      kernel.x86_64 0:2.6.18-238.el5                                                                                                   
    
    Complete!
    

    Create an initrd for the new kernel; this should also add a new stanza to grub.conf:

    [root@localhost yum.repos.d]# mkinitrd -v -f /boot/initrd-2.6.18-238.el5.img 2.6.18-238.el5
    Creating initramfs
    Looking for deps of module ehci-hcd
    Looking for deps of module ohci-hcd
    Looking for deps of module uhci-hcd
    Looking for deps of module ext3: jbd
    Looking for deps of module jbd
    Found root device sda2 for LABEL=/
    Looking for driver for device sda2
    Looking for deps of module pci:v00008086d00002829sv00000000sd00000000bc01sc06i01: scsi_mod libata ahci scsi_mod libata ahci
    Looking for deps of module scsi_mod
    Looking for deps of module sd_mod: scsi_mod
    Looking for deps of module libata: scsi_mod
    Looking for deps of module ahci: scsi_mod libata
    Looking for driver for device sda3
    Looking for deps of module pci:v00008086d00002829sv00000000sd00000000bc01sc06i01: scsi_mod libata ahci scsi_mod libata ahci
    Looking for deps of module ata_piix: scsi_mod libata
    Looking for deps of module ide-disk
    Looking for deps of module dm-mem-cache
    Looking for deps of module dm-region_hash: dm-mod dm-log
    Looking for deps of module dm-mod
    Looking for deps of module dm-log: dm-mod
    Looking for deps of module dm-message
    Looking for deps of module dm-raid45: dm-message dm-mod dm-mem-cache dm-log dm-region_hash
    Using modules:  /lib/modules/2.6.18-238.el5/kernel/drivers/usb/host/ehci-hcd.ko /lib/modules/2.6.18-238.el5/kernel/drivers/usb/host/ohci-hcd.ko /lib/modules/2.6.18-238.el5/kernel/drivers/usb/host/uhci-hcd.ko /lib/modules/2.6.18-238.el5/kernel/fs/jbd/jbd.ko /lib/modules/2.6.18-238.el5/kernel/fs/ext3/ext3.ko /lib/modules/2.6.18-238.el5/kernel/drivers/scsi/scsi_mod.ko /lib/modules/2.6.18-238.el5/kernel/drivers/scsi/sd_mod.ko /lib/modules/2.6.18-238.el5/kernel/drivers/ata/libata.ko /lib/modules/2.6.18-238.el5/kernel/drivers/ata/ahci.ko /lib/modules/2.6.18-238.el5/kernel/drivers/ata/ata_piix.ko /lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-mem-cache.ko /lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-mod.ko /lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-log.ko /lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-region_hash.ko /lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-message.ko /lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-raid45.ko
    /sbin/nash -> /tmp/initrd.TY1796/bin/nash
    /sbin/insmod.static -> /tmp/initrd.TY1796/bin/insmod
    /etc/udev/rules.d/05-udev-early.rules -> /tmp/initrd.TY1796/etc/udev/rules.d/05-udev-early.rules
    /sbin/firmware_helper.static -> /tmp/initrd.TY1796/sbin/firmware_helper
    /sbin/udevd.static -> /tmp/initrd.TY1796/sbin/udevd
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/usb/host/ehci-hcd.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/ehci-hcd.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/usb/host/ohci-hcd.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/ohci-hcd.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/usb/host/uhci-hcd.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/uhci-hcd.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/fs/jbd/jbd.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/jbd.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/fs/ext3/ext3.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/ext3.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/scsi/scsi_mod.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/scsi_mod.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/scsi/sd_mod.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/sd_mod.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/ata/libata.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/libata.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/ata/ahci.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/ahci.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/ata/ata_piix.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/ata_piix.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-mem-cache.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/dm-mem-cache.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-mod.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/dm-mod.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-log.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/dm-log.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-region_hash.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/dm-region_hash.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-message.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/dm-message.ko' [elf64-x86-64]
    copy from `/lib/modules/2.6.18-238.el5/kernel/drivers/md/dm-raid45.ko' [elf64-x86-64] to `/tmp/initrd.TY1796/lib/dm-raid45.ko' [elf64-x86-64]
    /sbin/dmraid.static -> /tmp/initrd.TY1796/bin/dmraid
    /sbin/kpartx.static -> /tmp/initrd.TY1796/bin/kpartx
    Adding module ehci-hcd
    Adding module ohci-hcd
    Adding module uhci-hcd
    Adding module jbd
    Adding module ext3
    Adding module scsi_mod
    Adding module sd_mod
    Adding module libata
    Adding module ahci
    Adding module ata_piix
    Adding module dm-mem-cache
    Adding module dm-mod
    Adding module dm-log
    Adding module dm-region_hash
    Adding module dm-message
    Adding module dm-raid45
    
    [root@localhost yum.repos.d]# cat /boot/grub/grub.conf
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/xvda2
    #          initrd /initrd-version.img
    #boot=/dev/xvda
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    default=0
    title Oracle Linux Server (2.6.18-238.el5)
         root (hd0,0)
         kernel /vmlinuz-2.6.18-238.el5 ro root=LABEL=/ numa=off
         initrd /initrd-2.6.18-238.el5.img
    title Oracle Linux Server (2.6.18-238.0.0.0.1.el5xen)
         root (hd0,0)
         kernel /vmlinuz-2.6.18-238.0.0.0.1.el5xen ro root=LABEL=/ numa=off
         initrd /initrd-2.6.18-238.0.0.0.1.el5xen.img
    title Oracle Linux Server (2.6.32-100.26.2.el5)
         root (hd0,0)
         kernel /vmlinuz-2.6.32-100.26.2.el5 ro root=LABEL=/ numa=off
         initrd /initrd-2.6.32-100.26.2.el5.img
    title Enterprise Linux Enterprise Linux Server (2.6.32-100.0.19.el5)
         root (hd0,0)
         kernel /vmlinuz-2.6.32-100.0.19.el5 ro root=LABEL=/ numa=off
         initrd /initrd-2.6.32-100.0.19.el5.img
    title Enterprise Linux Enterprise Linux Server (2.6.18-128.0.0.0.2.el5xen)
         root (hd0,0)
         kernel /vmlinuz-2.6.18-128.0.0.0.2.el5xen ro root=LABEL=/ numa=off
         initrd /initrd-2.6.18-128.0.0.0.2.el5xen.img
    

    Side note: Astute readers will notice (by inspection of grub.conf or by running rpm -q) that there are a number of other kernels already installed in this VM, including some "vanilla" OEL6/UEK kernels and an earlier OEL5 Xen kernel. I chose to stick with OEL 5.6 because it matches the version of the template's Xen kernel, and therefore best fits the most recent configuration of the VM. Besides, at the time of this writing, there are still some components of E-Business Suite that are not yet supported under OEL6/RHEL6 (see "Unsupported Products" in My Oracle Support Note 761566.1 )

    [root@localhost ~]# rpm -qa | grep kernel
    kernel-uek-headers-2.6.32-100.26.2.el5
    kernel-xen-2.6.18-128.0.0.0.2.el5
    kernel-2.6.32-100.0.19.el5
    kernel-xen-2.6.18-238.0.0.0.1.el5
    kernel-firmware-2.6.32-100.0.19.el5
    kernel-uek-firmware-2.6.32-100.26.2.el5
    kernel-uek-2.6.32-100.26.2.el5
    

  8. Reboot and prepare for next steps
    • Detach the boot ISO from the CD drive of the database server VM (Devices menu -> Remove disk from virtual drive)
    • Reboot the database server VM.
    • Connect as the root user (the password, as listed in the template README file, is 'ovsroot')
  9. Configure the Vision database tier
    Oracle provides a helpful script that, when run as root, will configure your network interfaces and the E-Business Suite Vision database tier. It should need to be run only once. First, we need to re-enable the script before we invoke it, by setting RUN_TEMPLATE_CONF=YES in /etc/sysconfig/oraclevm-template:

    [root@localhost ~]# vi /etc/sysconfig/oraclevm-template
    "/etc/sysconfig/oraclevm-template" 26L, 907C written
    [root@localhost ~]# grep RUN_ /etc/sysconfig/oraclevm-template
    RUN_TEMPLATE_CONF=YES
    

    Now start the config script. The first part will help you configure networking. For my setup of the first network interface (eth0), I chose an IP address that was unused in the range supported by my host-only network, and was also not part of the range of DHCP addresses for the host-only network. Pick anything you like for the hostname, as long as it follows the three-part 'host.domain.com' scheme required by the configuration script. The sometimes-popular host.localdomain format won't work in this case. For DNS server, choose one that will work for you. I like Google's; it's easy to remember. :) Note that the script also picked my NAT interface to use as a gateway. This didn't cause me any problems so far, so I'm living with it. Warning: this script stops and restarts network interfaces! To minimize risk of failure, run these steps from the console of your VM. If you choose to connect to the VM via ssh, I recommend using 'screen' before running the oraclevm-template script, to insulate yourself from dropped network connections.

    [root@localhost ~]# /etc/init.d/oraclevm-template start
    Starting oraclevm-template...
    Regenerating SSH host keys.
    Stopping sshd:                                             [  OK  ]
    Generating SSH1 RSA host key:                              [  OK  ]
    Generating SSH2 RSA host key:                              [  OK  ]
    Generating SSH2 DSA host key:                              [  OK  ]
    Starting sshd:                                             [  OK  ]
    Setting Oracle validated configuration parameters.
    Configuring Oracle E-Business Suite...
    
    Configuring network interface.
      Network device: eth0
      Hardware address: 08:00:27:5A:17:F4
    
    Enter static IP address: 192.168.56.42
    Enter netmask: [255.255.255.0] <ENTER to take default>
    Enter gateway: 192.168.56.1
    Enter DNS server: 8.8.8.8
    
    Shutting down interface eth0:                              [  OK  ]
    Shutting down interface eth1:                              [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    
    Configuring network settings.
      IP configuration: Static IP address
    
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:                                [  OK  ]
    Bringing up interface eth1: 
    Determining IP information for eth1... done.
                                                               [  OK  ]
    
    Enter hostname (e.g, host.domain.com): gkar.local.org
    
    Network configuration changed successfully.
      IP configuration: Static IP address
      IP address:       192.168.56.42
      Netmask:          255.255.255.0
      Gateway:          10.0.3.2
      DNS server:       8.8.8.8
      Hostname:         gkar.local.org
    

    Once the network is set up, the script invokes the Rapid Clone utility to set up the EBS datbaase tier. You can get valid values from the README file that came with the template, or follow the example below.

                         Copyright (c) 2002 Oracle Corporation
                            Redwood Shores, California, USA
    
                            Oracle Applications Rapid Clone
    
                                     Version 12.0.0
    
                          adcfgclone Version 120.31.12010000.8
    
    Enter the APPS password : apps
    
    Running:
    /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre/bin/java -Xmx600M -cp /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/java:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/xmlparserv2.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/ojdbc5.jar oracle.apps.ad.context.CloneContext -e /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/../context/db/CTXORIG.xml -validate -pairsfile /tmp/adpairsfile_7558.lst -stage /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone  2> /tmp/adcfgclone_7558.err; echo $? > /tmp/adcfgclone_7558.res
    
    Log file located at /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/CloneContext_1115072133.log
    
    Provide the values required for creation of the new Database Context file.
    
    Target System Hostname (virtual or normal) [gkar] : <ENTER to take default>
    
    Target Instance is RAC (y/n) [n] : <ENTER to take default>
    
    Target System Database SID : VIS 
    
    Target System Base Directory : /u01/E-BIZ
    
    Target System utl_file_dir Directory List : /usr/tmp
    
    Number of DATA_TOP's on the Target System [1] : <ENTER to take default>
    
    Target System DATA_TOP Directory 1 [/u01/E-BIZ/db/apps_st/data] : <ENTER to take default>
    
    Target System RDBMS ORACLE_HOME Directory [/u01/E-BIZ/db/tech_st/11.1.0] : /u01/E-BIZ/db/tech_st/11.2.0.2
    
    Do you want to preserve the Display [atgtxk05:0.0] (y/n)  : n
    
    Target System Display [gkar:0.0] : <ENTER to take default>
    
    Do you want the the target system to have the same port values as the source system (y/n) [y] ? : n
    
    Target System Port Pool [0-99] : 42
    
    Checking the port pool 42
    done: Port Pool 42 is free
    Report file located at /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/temp/portpool.lst
    Complete port information available at /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/temp/portpool.lst
    
    Creating the new Database Context file from :
      /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/template/adxdbctx.tmp
    
    The new database context file has been created :
      /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/VIS_gkar.xml
    
    Log file located at /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/CloneContext_1115072133.log
    Check Clone Context logfile /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/CloneContext_1115072133.log for details.
    
    Running Rapid Clone with command:
    perl /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/adclone.pl java=/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre mode=apply stage=/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone component=dbTier method=CUSTOM dbctxtg=/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/VIS_gkar.xml showProgress contextValidated=true
    Running:
    perl /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/adclone.pl java=/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre mode=apply stage=/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone component=dbTier method=CUSTOM dbctxtg=/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/VIS_gkar.xml showProgress contextValidated=true
    APPS Password :
    
    Beginning database tier Apply - Thu Nov 15 07:24:40 2012
    
    /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre/bin/java -Xmx600M -DCONTEXT_VALIDATED=true  -Doracle.installer.oui_loc=/u01/E-BIZ/db/tech_st/11.2.0.2/oui -classpath /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/xmlparserv2.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/ojdbc5.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/java:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/OraInstaller.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/ewt3.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/share.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/srvm.jar:/u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone/jlib/ojmisc.jar   oracle.apps.ad.clone.ApplyDBTier -e /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/VIS_gkar.xml -stage /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/clone   -showProgress
    APPS Password : Log file located at /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/log/VIS_gkar/ApplyDBTier_11150724.log
      \     15% completed      
    
    Completed Apply...
    Thu Nov 15 07:43:22 2012
    
    Starting database listener for VIS:
    Running:
    /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/scripts/VIS_gkar/addlnctl.sh start VIS
    Logfile: /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/log/VIS_gkar/addlnctl.txt
    
    You are running addlnctl.sh version 120.1.12010000.4
    
    
    Starting listener process VIS ...
    
    
    Listener VIS has already been started.
    
    
    addlnctl.sh: exiting with status 0
    
    addlnctl.sh: check the logfile /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/log/VIS_gkar/addlnctl.txt for more information ... 
    
    Template configuration disabled.
                                                               [  OK  ]
    [root@localhost ~]# ps -ef | grep pmon
    oracle   14565     1  0 07:36 ?        00:00:00 ora_pmon_VIS
    root     15375  2319  0 07:45 pts/0    00:00:00 grep pmon
    
    
  10. OK, we're done with the first part! Keep the database server running (not optional, required), and let's move on to the apps tier!

  11. Boot the app server VM in rescue mode from the install CD
    Start the application server VM in rescue mode ("linux rescue" at the boot: prompt). Follow all the same steps as you did for the database server, including enabling the network interfaces, and chroot /mnt/sysimage. I'll spare you the screenshots this time.
  12. Update configuration files
    As with the database server, adjust /etc/modprobe.conf, /etc/fstab, and /etc/sysconfig/oraclevm-template:

    [root@localhost ~]# cat /etc/modprobe.conf
    alias eth0 e1000
    alias scsi_hostadapter ata_piix
    alias scsi_hostadapter1 ahci
    
    [root@localhost ~]# grep ebs1211apps /etc/fstab
    LABEL=ebs1211apps       /u01                    ext3    defaults        1 0
    
    [root@localhost ~]# grep RUN /etc/sysconfig/oraclevm-template
    #RUN_TEMPLATE_CONF=YES
    RUN_TEMPLATE_CONF=NO
    
  13. Install a new kernel
    Same idea as before, with a few exceptions: The app server VM doesn't have a nameserver entry in resolv.conf, so we need to add it before we reach out the to the yum server. We do not, however, need to download the repository config file:
    [root@localhost ~]# cd /etc/yum.repos.d 
    [root@localhost yum.repos.d]# cat /etc/resolv.conf
    cat: /etc/resolv.conf: No such file or directory
    [root@localhost yum.repos.d]# echo "nameserver 8.8.8.8" > /etc/resolv.conf
    [root@localhost yum.repos.d]# cat /etc/resolv.conf
    nameserver 8.8.8.8
    [root@localhost yum.repos.d]# nslookup public-yum.oracle.com
    Server:          8.8.8.8
    Address:     8.8.8.8#53
    
    Non-authoritative answer:
    public-yum.oracle.com     canonical name = bigip-public-yum.oracle.com.
    Name:     bigip-public-yum.oracle.com
    Address: 141.146.44.34
    
    [root@localhost yum.repos.d]# ls -l public-yum-el5.repo
    -rw-r--r-- 1 root root 2308 Feb  1  2011 public-yum-el5.repo
    "public-yum-el5.repo" 69L, 2308C written
    [root@localhost yum.repos.d]# vi public-yum-el5.repo
    [root@localhost yum.repos.d]# grep -B5 'enabled=1' public-yum-el5.repo | grep ']'
    [ol5_u6_base]
    [root@localhost yum.repos.d]# yum install kernel-2.6.18-238.el5
    ol5_u6_base                                                                                                  | 1.1 kB     00:00    
    ol5_u6_base/primary                                                                                          | 1.5 MB     00:02    
    ol5_u6_base                                                                                                               4551/4551
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package kernel.x86_64 0:2.6.18-238.el5 set to be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ====================================================================================================================================
     Package                     Arch                        Version                             Repository                        Size
    ====================================================================================================================================
    Installing:
     kernel                      x86_64                      2.6.18-238.el5                      ol5_u6_base                       19 M
    
    Transaction Summary
    ====================================================================================================================================
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 19 M
    Is this ok [y/N]: y
    Downloading Packages:
    kernel-2.6.18-238.el5.x86_64.rpm                                                                             |  19 MB     00:23    
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : kernel                                                                                                       1/1
    
    Installed:
      kernel.x86_64 0:2.6.18-238.el5                                                                                                   
    
    Complete!
    
    
    [root@localhost yum.repos.d]# mkinitrd -v -f /boot/initrd-2.6.18-238.el5.img 2.6.18-238.el5
    [mkinitrd output snipped this time.  You're welcome]
    [root@localhost yum.repos.d]# head -15 /boot/grub/grub.conf
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/xvda2
    #          initrd /initrd-version.img
    #boot=/dev/xvda
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    default=0
    title Oracle Linux Server (2.6.18-238.el5)
         root (hd0,0)
    
    
  14. Reboot and prepare for next steps
    • Detach the boot ISO from the CD drive of the app server VM (Devices menu -> Remove disk from virtual drive)
    • Reboot the app server VM.
    • Connect as the root user (the password, as listed in the template README file, is 'ovsroot')
  15. Configure the Vision applications tier
    There are some important differences here from the database server setup. Please read carefully. The first part, however, is the same: re-enable and run the oraclevm-template script, setting up the same network options as before (different IP/hostname for the app server, of course). As with the database server, make sure to run the config script in the VM console or in a screen session to avoid network interruptions!

    [root@localhost ~]# grep RUN /etc/sysconfig/oraclevm-template
    RUN_TEMPLATE_CONF=YES
    
    [root@localhost ~]# /etc/init.d/oraclevm-template start
    Starting oraclevm-template...
    Regenerating SSH host keys.
    Stopping sshd:                                             [  OK  ]
    Generating SSH1 RSA host key:                              [  OK  ]
    Generating SSH2 RSA host key:                              [  OK  ]
    Generating SSH2 DSA host key:                              [  OK  ]
    Starting sshd:                                             [  OK  ]
    Setting Oracle validated configuration parameters.
    Configuring Oracle E-Business Suite...
    
    Configuring network interface.
      Network device: eth0
      Hardware address: 08:00:27:3D:41:3B
    
    Enter static IP address: 192.168.56.43
    Enter netmask: [255.255.255.0] <ENTER to take default>
    Enter gateway: 192.168.56.1
    Enter DNS server: 8.8.8.8
    
    Shutting down interface eth0:                              [  OK  ]
    Shutting down interface eth1:                              [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    
    Configuring network settings.
      IP configuration: Static IP address
    
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:                                [  OK  ]
    Bringing up interface eth1: 
    Determining IP information for eth1... done.
                                                               [  OK  ]
    
    Enter hostname (e.g, host.domain.com): <b style="color:green;">natoth.local.org</b>
    
    Network configuration changed successfully.
      IP configuration: Static IP address
      IP address:       192.168.56.43
      Netmask:          255.255.255.0
      Gateway:          10.0.3.2
      DNS server:       8.8.8.8
      Hostname:         natoth.local.org
    
    

    ***IMPORTANT*** AFTER network configuration, but BEFORE proceeding with any Rapid Clone steps, start a second session (do NOT interrupt the template configuration script) to add the IP and hostname for your database server to /etc/hosts. Otherwise, Rapid Clone won't be able to find the db server to complete its configuration. It's not helpful to try to "cheat forward" and make the /etc/hosts adjustments before starting the template configuration script, because the script overwrites /etc/hosts. So:

    root@192.168.56.43's password: #you should be able to access the VM via the IP you specified earlier
    Last login: Tue Nov 20 21:51:13 2012 from 192.168.56.1
    [root@natoth ~]# cat /etc/hosts
    127.0.0.1       localhost.localdomain   localhost
    ::1     localhost6.localdomain6 localhost6
    192.168.56.43     natoth.local.org natoth
    [root@natoth ~]# echo "192.168.56.42 gkar.local.org gkar" >> /etc/hosts
    [root@natoth ~]# cat /etc/hosts
    127.0.0.1       localhost.localdomain   localhost
    ::1     localhost6.localdomain6 localhost6
    192.168.56.43     natoth.local.org natoth
    192.168.56.42 gkar.local.org gkar
    [root@natoth ~]# ping gkar  #confirm that app server can see the database server
    PING gkar.local.org (192.168.56.42) 56(84) bytes of data.
    64 bytes from gkar.local.org (192.168.56.42): icmp_seq=1 ttl=64 time=1.94 ms
    64 bytes from gkar.local.org (192.168.56.42): icmp_seq=2 ttl=64 time=0.505 ms
    
    --- gkar.local.org ping statistics ---
    
    

    ***RESUME Rapid Clone run in the first session*** (it should be waiting for you to enter the APPS user password)

  16.                      Copyright (c) 2002 Oracle Corporation
                            Redwood Shores, California, USA
    
                            Oracle Applications Rapid Clone
    
                                     Version 12.0.0
    
                          adcfgclone Version 120.31.12010000.8
    
    Enter the APPS password : apps
    
    Running:
    /u01/E-BIZ/apps/apps_st/comn/clone/bin/../jre/bin/java -Xmx600M -cp /u01/E-BIZ/apps/apps_st/comn/clone/jlib/java:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/xmlparserv2.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/ojdbc14.jar oracle.apps.ad.context.CloneContext -e /u01/E-BIZ/apps/apps_st/comn/clone/bin/../context/apps/CTXORIG.xml -validate -pairsfile /tmp/adpairsfile_21022.lst -stage /u01/E-BIZ/apps/apps_st/comn/clone  2> /tmp/adcfgclone_21022.err; echo $? > /tmp/adcfgclone_21022.res
    
    Log file located at /u01/E-BIZ/apps/apps_st/comn/clone/bin/CloneContext_1120230342.log
    
    Provide the values required for creation of the new APPL_TOP Context file.
    
    Target System Hostname (virtual or normal) [natoth] : <ENTER to take default>
    
    Target System Database SID : VIS
    
    Target System Database Server Node [natoth] : gkar
    
    Target System Database Domain Name [local.org] : <ENTER to take default>
    
    Target System Base Directory : /u01/E-BIZ
    
    Target System Tools ORACLE_HOME Directory [/u01/E-BIZ/apps/tech_st/10.1.2] : <ENTER to take default>
    
    Target System Web ORACLE_HOME Directory [/u01/E-BIZ/apps/tech_st/10.1.3] : <ENTER to take default>
    
    Target System APPL_TOP Directory [/u01/E-BIZ/apps/apps_st/appl] : <ENTER to take default>
    
    Target System COMMON_TOP Directory [/u01/E-BIZ/apps/apps_st/comn] : <ENTER to take default>
    
    Target System Instance Home Directory [/u01/E-BIZ/inst] : <ENTER to take default>
    
    Target System Root Service [enabled] : <ENTER to take default>
    
    Target System Web Entry Point Services [enabled] : <ENTER to take default>
    
    Target System Web Application Services [enabled] : <ENTER to take default>
    
    Target System Batch Processing Services [enabled] : <ENTER to take default>
    
    Target System Other Services [disabled] : <ENTER to take default>
    
    Do you want to preserve the Display [atgtxk-09:0.0] (y/n)  : n
    
    Target System Display [natoth:0.0] : <ENTER to take default>
    
    Do you want the the target system to have the same port values as the source system (y/n) [y] ? : n
    
    Target System Port Pool [0-99] : 42
    
    Checking the port pool 42
    done: Port Pool 42 is free
    Report file located at /u01/E-BIZ/inst/apps/VIS_natoth/temp/portpool.lst
    Complete port information available at /u01/E-BIZ/inst/apps/VIS_natoth/temp/portpool.lst
    
    UTL_FILE_DIR on database tier consists of the following directories.
    
    1. /usr/tmp
    2. /usr/tmp
    3. /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/outbound/VIS_gkar
    4. /usr/tmp
    Choose a value which will be set as APPLPTMP value on the target node [1] : 1
    
    Backing up /u01/E-BIZ/inst/apps/VIS_natoth/appl/admin/VIS_natoth.xml to /u01/E-BIZ/inst/apps/VIS_natoth/appl/admin/VIS_natoth.xml.bak
    
    Creating the new APPL_TOP Context file from :
      /u01/E-BIZ/apps/apps_st/appl/ad/12.0.0/admin/template/adxmlctx.tmp
    
    The new APPL_TOP context file has been created :
      /u01/E-BIZ/inst/apps/VIS_natoth/appl/admin/VIS_natoth.xml
    
    Log file located at /u01/E-BIZ/apps/apps_st/comn/clone/bin/CloneContext_1120230342.log
    Check Clone Context logfile /u01/E-BIZ/apps/apps_st/comn/clone/bin/CloneContext_1120230342.log for details.
    
    Running Rapid Clone with command:
    perl /u01/E-BIZ/apps/apps_st/comn/clone/bin/adclone.pl java=/u01/E-BIZ/apps/apps_st/comn/clone/bin/../jre mode=apply stage=/u01/E-BIZ/apps/apps_st/comn/clone component=appsTier method=CUSTOM appctxtg=/u01/E-BIZ/inst/apps/VIS_natoth/appl/admin/VIS_natoth.xml showProgress contextValidated=true
    Running:
    perl /u01/E-BIZ/apps/apps_st/comn/clone/bin/adclone.pl java=/u01/E-BIZ/apps/apps_st/comn/clone/bin/../jre mode=apply stage=/u01/E-BIZ/apps/apps_st/comn/clone component=appsTier method=CUSTOM appctxtg=/u01/E-BIZ/inst/apps/VIS_natoth/appl/admin/VIS_natoth.xml showProgress contextValidated=true
    APPS Password :
    
    Beginning application tier Apply - Tue Nov 20 23:04:58 2012
    
    /u01/E-BIZ/apps/apps_st/comn/clone/bin/../jre/bin/java -Xmx600M -DCONTEXT_VALIDATED=true  -Doracle.installer.oui_loc=/oui -classpath /u01/E-BIZ/apps/apps_st/comn/clone/jlib/xmlparserv2.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/ojdbc14.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/java:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/oui/OraInstaller.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/oui/ewt3.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/oui/share.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/oui/srvm.jar:/u01/E-BIZ/apps/apps_st/comn/clone/jlib/ojmisc.jar  oracle.apps.ad.clone.ApplyAppsTier -e /u01/E-BIZ/inst/apps/VIS_natoth/appl/admin/VIS_natoth.xml -stage /u01/E-BIZ/apps/apps_st/comn/clone    -showProgress
    APPS Password : Log file located at /u01/E-BIZ/inst/apps/VIS_natoth/admin/log/ApplyAppsTier_11202304.log
      \     73% completed      
    
    Completed Apply...
    Tue Nov 20 23:13:40 2012
    
    
    Do you want to startup the Application Services for VIS? (y/n) [y] : y
    
    Starting application Services for VIS:
    Running:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adstrtal.sh -nopromptmsg
    
    You are running adstrtal.sh version 120.15.12010000.3
    
    The logfile for this session is located at /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adstrtal.log
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adopmnctl.sh start
    script returned:
    ****************************************************
    
    You are running adopmnctl.sh version 120.6.12010000.5
    
    Starting Oracle Process Manager (OPMN) ...
    opmnctl: opmn started.
    
    adopmnctl.sh: exiting with status 0
    
    adopmnctl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adopmnctl.txt for more information ...  
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adalnctl.sh start
    script returned:
    ****************************************************
    
    adalnctl.sh version 120.3
    
    Checking for FNDFS executable.
    Starting listener process APPS_VIS.
    
    adalnctl.sh: exiting with status 0
    
    
    adalnctl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adalnctl.txt for more information ...  
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adapcctl.sh start
    script returned:
    ****************************************************
    
    You are running adapcctl.sh version 120.7.12010000.2
    
    Starting OPMN managed Oracle HTTP Server (OHS) instance ...
    opmnctl: opmn is already running.
    opmnctl: starting opmn managed processes...
    
    adapcctl.sh: exiting with status 0
    
    adapcctl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adapcctl.txt for more information ...  
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adoacorectl.sh start
    script returned:
    ****************************************************
    
    You are running adoacorectl.sh version 120.13
    
    Starting OPMN managed OACORE OC4J instance  ...
    
    adoacorectl.sh: exiting with status 0
    
    adoacorectl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adoacorectl.txt for more information ...  
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adformsctl.sh start
    script returned:
    ****************************************************
    
    You are running adformsctl.sh  version 120.16.12010000.3
    
    Starting OPMN managed FORMS OC4J instance  ...
    Calling txkChkFormsDeployment.pl to check whether latest FORMSAPP.EAR is deployed...
    Program : /u01/E-BIZ/apps/apps_st/appl/fnd/12.0.0/patch/115/bin/txkChkFormsDeployment.pl started @ Thu Nov 29 07:20:21 2012
    
    *** Log File = /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/rgf/TXK/txkChkFormsDeployment_Thu_Nov_29_07_20_20_2012/txkChkFormsDeployment_Thu_Nov_29_07_20_20_2012.log 
    
    File "/u01/E-BIZ/apps/tech_st/10.1.3/j2ee/forms/applications/forms/formsweb/WEB-INF/lib/frmsrv.jar" exists. Proceeding to check the size...
    
    =============================================
    *** Latest formsapp.ear has been deployed ***
    =============================================
    
    
    Program : /u01/E-BIZ/apps/apps_st/appl/fnd/12.0.0/patch/115/bin/txkChkFormsDeployment.pl completed @ Thu Nov 29 07:20:21 2012
    
    Perl script txkChkFormsDeployment.pl got executed successfully
    
    
    
    adformsctl.sh: exiting with status 0
    
    adformsctl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adformsctl.txt for more information ...  
    
    
    .end std out.
    *** ALL THE FOLLOWING FILES ARE REQUIRED FOR RESOLVING RUNTIME ERRORS
    *** Log File = /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/rgf/TXK/txkChkFormsDeployment_Thu_Nov_29_07_20_20_2012/txkChkFormsDeployment_Thu_Nov_29_07_20_20_2012.log 
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adoafmctl.sh start
    script returned:
    ****************************************************
    
    You are running adoafmctl.sh version 120.8
    
    Starting OPMN managed OAFM OC4J instance  ...
    
    adoafmctl.sh: exiting with status 0
    
    adoafmctl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adoafmctl.txt for more information ...  
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/adcmctl.sh start
    script returned:
    ****************************************************
    
    You are running adcmctl.sh version 120.17.12010000.5
    
    Starting concurrent manager for VIS ...
    Starting VIS_1129@VIS Internal Concurrent Manager
    Default printer is noprint
    
    adcmctl.sh: exiting with status 0
    
    
    adcmctl.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adcmctl.txt for more information ...  
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    Executing service control script:
    /u01/E-BIZ/inst/apps/VIS_natoth/admin/scripts/jtffmctl.sh start
    script returned:
    ****************************************************
    
    You are running jtffmctl.sh version 120.3
    
    Validating Fulfillment patch level via /u01/E-BIZ/apps/apps_st/comn/java/classes
    Fulfillment patch level validated.
    Starting Fulfillment Server for VIS on port 9342 ...
    
    jtffmctl.sh: exiting with status 0
    
    
    .end std out.
    
    .end err out.
    
    ****************************************************
    
    
    All enabled services for this node are started.
    
    adstrtal.sh: Exiting with status 0
    
    adstrtal.sh: check the logfile /u01/E-BIZ/inst/apps/VIS_natoth/logs/appl/admin/log/adstrtal.log for more information ...  
    
    Template configuration disabled.
    

    [Apps DBAs with experience running Vision might be a bit worried about this last step, because of the number of services that can be started by default. I found that the version delivered with the template is reasonably trim, with only a handful of concurrent managers configured. It could probably still be pared down, but the default config won't make your VM choke and fall over.]

That's it! Almost...

A few more notes to get you on your way:

  1. Access the front-end of your shiny new E-Business Suite Release 12.1.3 instance at http://your_hostname:80nn, where nn is the value of the port pool that you chose during the Rapid Clone run (http://natoth.local.org:8042 in my example). The login to use is sysadmin, and the password is the same (but they're pronounced differently)
  2. If you have JRE 7 installed on your workstation, you are going to have problems when launching the Oracle Forms interface, but the web interface ("Self Service") should work without issues. If you're interested in giving the Forms interface a whirl, you will need to roll back to JRE 6.
  3. To start and stop the apps the "quick and easy" way, you can use the scripts found in /u01 on each server: startapps.sh and stopapps.sh on the app server, and startdb.shs and stopdb.sh on the database server. These scripts need to be run as the software owner (oracle, in both cases), not root!
  4. The oracle user accounts are configured to prompt you to change default passwords whenever you log in:
    **************************ATTENTION**************************************
    This is the first time you are logging in to the system as oracle user   
    Oracle recommends that you change the default password for the oracle user
    Would you like to change the password now (YES/NO)?
    *************************************************************************
    
    Enter YES or NO :

    It's not a bad idea to change the paswords, of course. If you're happy with the defaults, however, then just answer NO to all the prompts, and issue the command touch /home/oracle/.passchanged to avoid being prompted on subsequent logins.

  5. To make sure that your environment variables are set correctly when connecting to the apps and db servers as oracle, add the following lines to the .bash_profile:
    App server:
    echo ". /u01/E-BIZ/apps/apps_st/appl/APPSVIS_`hostname -s`.env" >> ~/.bash_profile
    DB Server:
    echo ". /u01/E-BIZ/db/tech_st/11.2.0.2/VIS_`hostname -s`.env" >> ~/.bash_profile
    
  6. More than likely, if you're bothering to go through with all of this nonsense, you're already somewhat familiar with E-Business Suite. If you're new to the administrative side of EBS, however, I humbly recommend a review of Part 3 and Part 4 of the EBS install guide I wrote for oraclenerd.com a while back. It barely scratches the surface, but there's enough there for some basic orientation. After that, you have lots of documentation reading ahead of you!
  7. Finally, if you aren't going to use them in an Oracle VM server, and you're satisfied with the state of your new Vision instance, you can now delete the original disk .img files and reclaim about 300GB of disk space. Just don't delete the .vdi versions by mistake!

4 Comments

  1. narayana
    Posted 7 April 2013 at 0:36 | Permalink

    hi,

    first,thanks for the great article. i am able to setup R12.1.3 successfully. i want GUI interface OS. can i do yum update for oracle provided templates(.vdi) and install Desktop related packages ?

    Regards,
    Narayana

  2. Posted 12 April 2013 at 20:42 | Permalink

    Hi Narayana,
    If you want a GUI interface to Linux OS, then yes, you can use yum to install the packages you need (gnome, etc). It's just Linux, after all. :-) If you're looking to access the E-Business Suite GUI, however, you're in for some disappointment: the Oracle Forms interface is not supported on Linux. I've read reports that some people have had limited success getting Froms to work under Linux, but in my opinion, you'll save yourself a lot of time and effort by accessing Oracle Forms from a more mainstream desktop OS like Windows or OS X.

    Good luck!

    Regards,

    John P.

  3. Narayana Reddy D V V
    Posted 15 April 2013 at 18:58 | Permalink

    Hi john,

    thanks for your response. yes i am unable to launch forms in linux vbox. will try accessing from windows.

    Regards,
    Narayana

  4. Priya
    Posted 3 May 2013 at 18:52 | Permalink

    Hi John,
    Hope you 'll be doing fine!

    I am struggling to convert my EBS R12 Vision with 11.2.0.3 Database to 2 node RAC 11g. The EBS Vision installed on the single server which have 64 GB of RAM & 2 TB HDD. i 've created the VirtualBox on the same server & shared a folders of 900GB with Host machine. both on RHEL 6 64 bit.

    I don't know how to used that shared folders as shared storage for RAC 11g.
    Could you please suggest.

    Following are the highlevel steps that i 've prepared for converting the EBS R12 into 2 node RAC 11g. Requesting you to Please correct these. Thanks,

    1. Install Oracle Clusterware 11g Release 2 on VirtualBox
    2 Install Oracle Database Software 11g Release 2
    3 Configure Listener
    4 Configure Shared Storage with ASM or ACFS
    5 Convert EBS Visoon Database to Oracle RAC using rconfig tool.

    Since this is the personal and I don't have DNS server coonfigured (even though
    i 'd like to so i could use Grid naming service or scan )

    so without DNS the /etc/hosts files entries of both i.e the Host machine & VirtualBox
    is .... Is that right ?Please correct.
    ==================================================
    127.0.0.1 localhost.localdomain localhost

    # Public
    192.168.1.10 Host.oracle.com Host
    192.168.1.6 VMbox.oracle.com VMbox
    #Private
    192.168.2.10 Host-priv.oracle.com Host-priv
    192.168.2.6 VMbox-priv.oracle.com VMbox-priv

    #Virtual
    192.168.1.11 Host-vip.oracle.com Host-vip
    192.168.1.7 VMbox-vip.oracle.com VMbox-vip

    ================================================

    Thanks & Regards
    Priya

One Trackback

  1. [...] reviewing my blog post about running EBS OVM templates in VirtualBox, two of my teammates suggested that I work on something with potentially broader appeal. Their [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*