oracle fusion middleware provisioning with puppet

32
By Edwin Biemond Oracle OpenWorld 2013 Roll Out a Complete Oracle Fusion Middleware Environment in Less Than 10 Minutes

Upload: edwin-biemond

Post on 10-May-2015

4.696 views

Category:

Technology


5 download

DESCRIPTION

Oracle Fusion Middleware provisioning with Puppet

TRANSCRIPT

Page 1: Oracle Fusion Middleware provisioning with Puppet

By Edwin Biemond

Oracle OpenWorld 2013

Roll Out a Complete Oracle Fusion Middleware Environment in Less Than 10 Minutes

Page 2: Oracle Fusion Middleware provisioning with Puppet

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 11gDeveloper Cookbook

Page 3: Oracle Fusion Middleware provisioning with Puppet

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

Page 4: Oracle Fusion Middleware provisioning with Puppet

4

You need to do so many steps

SOA Suite, OSB Server

DatabaseServer

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

Page 5: Oracle Fusion Middleware provisioning with Puppet

5

How to solve this?

Page 6: Oracle Fusion Middleware provisioning with Puppet

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

Page 7: Oracle Fusion Middleware provisioning with Puppet

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

Page 8: Oracle Fusion Middleware provisioning with Puppet

8

What is the solution?

Use a provisioning Toollike 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

Page 9: Oracle Fusion Middleware provisioning with Puppet

9

Start it up

Watch the Magic Happen

Page 10: Oracle Fusion Middleware provisioning with Puppet

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

Page 11: Oracle Fusion Middleware provisioning with Puppet

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.

Page 12: Oracle Fusion Middleware provisioning with Puppet

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

Page 13: Oracle Fusion Middleware provisioning with Puppet

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

Page 14: Oracle Fusion Middleware provisioning with Puppet

14

Puppet Demo Steps

MasterVersionControl

Agent

PuppetDashboard

PuppetModules

• 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

DatabaseServer

Operating system

Database software

Database creation

Soa Suite Repository

40

30

5

8

10 Min

Page 15: Oracle Fusion Middleware provisioning with Puppet

15

What is left for you?

Create your own FMW configurations

Fork or contribute to the WLS module

Puppetize everything

Page 16: Oracle Fusion Middleware provisioning with Puppet

16

Create a Main Class

• This class can be assigned to Nodes• Determine the order of installation

Page 17: Oracle Fusion Middleware provisioning with Puppet

17

WebLogic Puppet Class

Page 18: Oracle Fusion Middleware provisioning with Puppet

18

OSB / SOA Suite definitions

Page 19: Oracle Fusion Middleware provisioning with Puppet

19

Domain & WLST definitions

Page 20: Oracle Fusion Middleware provisioning with Puppet

20

Puppet Dashboard

Add the main class

Nodes

Page 21: Oracle Fusion Middleware provisioning with Puppet

21

Node definition

Assign the main class

Class parameters

Page 22: Oracle Fusion Middleware provisioning with Puppet

22

Auditing

Page 23: Oracle Fusion Middleware provisioning with Puppet

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

Page 24: Oracle Fusion Middleware provisioning with Puppet

24

Puppet Facts

Page 25: Oracle Fusion Middleware provisioning with Puppet

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

Page 26: Oracle Fusion Middleware provisioning with Puppet

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 = testenvironmentnr = test1

---:hierarchy: - "%{::hostname}” - "%{::environmentnr}” - "%{::environment}” - common

node = server1

$pass = hiera(‘password’)

# test1.yaml (encryption)---password: ”welcome1"

Page 27: Oracle Fusion Middleware provisioning with Puppet

27

The Result

A fully configured running Fusion Middleware Server

Page 28: Oracle Fusion Middleware provisioning with Puppet

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

Page 29: Oracle Fusion Middleware provisioning with Puppet

29

From Puppet Forge

Use “puppet module install biemond-wls” on the Puppet Master

Page 30: Oracle Fusion Middleware provisioning with Puppet

30

From GitHub

Use “git clone https://github.com/biemond/puppet.git” on the Puppet Master

Page 31: Oracle Fusion Middleware provisioning with Puppet

31

Thanks

Questions?

Edwin BiemondArchitect@biemond

https://github.com/biemondhttp://biemond.blogspot.comhttp://nl.linkedin.com/in/biemond

Page 32: Oracle Fusion Middleware provisioning with Puppet