Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Â
Oracle Fusion Middleware provisioning with Puppet
1. By Edwin Biemond
Oracle OpenWorld 2013
Roll Out a Complete Oracle Fusion
Middleware Environment in Less Than
10 Minutes
2. 2
#WHOAMI
I work for Amis
I live in The Netherlands
I have a blog http://biemond.blogspot.com
I am an Oracle ACE
I wrote a book
Oracle Service Bus 11g
Developer Cookbook
3. 3
Why is it so hard to configure a FMW environment?
And why does it always takes at least
a few days (weeks) before you can use it
4. 4
You need to do so many steps
SOA Suite, OSB
Server
Database
Server
Operating System
WebLogic
OSB
Soa Suite
Domain creation
Initial Domain
setup
Operating system
Database
software
Database
creation
Soa Suite
Repository
40
X Total actions
13
8
10
10
40
40
30
5
8
YUM + Packages / JVM /
Ulimits / Kernel / User /
Group / Directories
WebLogic / BSU /
NodeManager
OSB / OPatch
SOA Suite / OPatch
Create Domain
Logs / Security / JMS /
WebApps / DataSources /
Resource Adapters
6. 6
Administrators!!
⢠Expensive and you need more than one
⢠After a while they get bored, leave the company or make
mistakes
⢠Knowledge is in their heads
⢠Does have every installation have the same Quality?
⢠Still takes a long time to get a new environment
7. 7
Cloning
⢠Golden image still made by an Administrator
â The administrator has the knowledge
â Probably every Golden image is different
â Need for Guidelines
⢠Many Clones & Clones of Clones
â What are the differences?
â Hard to refresh all environments
â Probably need to change Operating System settings &
WebLogic DataSources
⢠Every few months there are some Oracle Patches
â Operating System
â JVM
â WebLogic & BSU
â FMW & OPatch
8. 8
What is the solution?
Use a provisioning Tool
like Puppet, Chef, Ansible
⢠Describe your environment in code & put it
under version control
⢠Outcome is predicatable and repeatable
⢠No need for extra configuration of O.S. or
WebLogic DataSources
⢠Auditing
⢠Can keep all servers up-to-date
10. 10
Puppet, OK but why?
⢠Great install base with 1600 ready to use
modules
⢠Supports and also used by VMware, OpenStack,
Amazon
⢠Multiple Operating System support like Linux,
Windows, Oracle Solaris & IBM AIX
⢠Integrated Dashboard
⢠Reporting & Auditing
⢠MCollective -> Live management
⢠Puppet Language, Templating, Eclipse as IDE
⢠Open Source or Enterprise Edition -> free with
max 10 nodes
11. 11
How it works
⢠Agent runs every X minutes or started by
MCollective
⢠Agent gathers local facts about its system
⢠Agent initiates a request to the server
requesting the latest version of its catalog
⢠Server compiles the configuration from
source into a catalog and returns it to the
agent.
⢠Agent applies the catalog, resulting in
configuration changes.
12. 12
Puppet Modules
Puppet as provisioning tool is not enough
â There are Puppet module for installing a JVM, configure kernel and ulimits
parameters
â Nothing for Oracle ( Database or WebLogic / FMW )
But Oracle supports silent install and provide utilities to
retrieve all the Middleware information
So I made my own Puppet Modules ď
â WLS Module
â OraDB Module -> installs a 11g & 12c Database plus RCU
â JDK7 Module -> fixes Urandom and RPM errors
â OraUtils -> WebLogic Scripts & Autostart NodeManager
13. 13
Puppet WLS Module
⢠Support for CentOS, RedHat,
OracleLinux, Ubuntu, Debian,
SLES, Solaris, Windows
⢠Installs
â WebLogic 10.3 (11g), 12.1.1, 12.1.2
â ADF 11g & 12c (12.1.2)
â Oracle Service Bus 11g
â Soa Suite 11g
â WebCenter 11g Portal & Content
⢠Patching
â BSU
â OPatch
⢠Tooling
â JDeveloper 11g, 12c
â OEPE
⢠Domain creation
â Standard (ADF)
â OSB
â OSB, SOA Suite, BAM
â OSB, SOA Suite, BAM, BPM
â WebCenter
â WebCenter, WC Content, BPM
⢠Configuration
â NodeManager
â Server Templates ( 12c)
â Dynamic Clusters (12c)
â Log location
â JCA Resource Adapter
â Persistence
â JMS
â SAF
â Can run any WLST script
14. 14
Puppet Demo Steps
Master
Version
Control
Agent
Puppet
Dashboard
Puppet
Modules
⢠WLS
⢠OraDB
⢠JDK7
⢠OS modules
Agent
SOA Suite, OSB
Server
Operating System
WebLogic
OSB
Soa Suite
Domain creation
Initial Domain
setup
40
13
8
10
10
40
15 Min
Database
Server
Operating system
Database
software
Database
creation
Soa Suite
Repository
40
30
5
8
10 Min
15. 15
What is left for you?
Create your own FMW configurations
Fork or contribute to the WLS module
Puppetize everything ď
16. 16
Create a Main Class
⢠This class can be assigned to Nodes
⢠Determine the order of installation
23. 23
Puppet Performance
⢠A Puppet Agent runs every XX minutes
⢠You donât want a Puppet Agent to run for 10 minutes every XX minutes
Solution = WebLogic Facts
WLS Puppet module harvests all the available Oracle Middleware
information of the Node like:
⢠oraInst.loc
⢠OraInventory
⢠BEA Homelist
⢠BSU output
⢠OPatch output of every Oracle Home
⢠WebLogic domain configuration
25. 25
Managing multiple Dev or Test
environments
⢠Use a big IF THEN ELSE statement
⢠Using Hiera -> key/value lookup tool for
configuration data
â Part of Puppet 3.0
â Solution for clean code
26. 26
Hiera, how it works!!
⢠In the Puppet class use the hiera()
function
⢠Add a text file on a node which defines
the environment
â This is picked up by the Puppet Agent
⢠On the Puppet master define howto look
for values -> hiera.yaml
⢠On the Puppet master look for the
password key
â Server1.yaml
â Test1.yaml
â Test.yaml
â Common.yaml
environment = test
environmentnr = test1
---
:hierarchy:
- "%{::hostname}â
- "%{::environmentnr}â
- "%{::environment}â
- common
node = server1
$pass = hiera(âpasswordâ)
# test1.yaml (encryption)
---
password: âwelcome1"
28. 28
Next Steps
⢠Download the Learning Puppet VM image
â Get the VMware or the Oracle VirtualBox learning image
http://info.puppetlabs.com/download-learning-puppet-VM.html
⢠Configure your own Puppet Server
â Allowed the use the Puppet Enterprise and manage up to 10 nodes
⢠Install the WLS module
â Download from Puppet Forge http://forge.puppetlabs.com
â Clone from GitHub https://github.com/biemond/puppet
⢠Download your licensed / Developer Oracle software
â From Oracle Technology Network http://otn.oracle.com
â From EDelivery https://edelivery.oracle.com