Got the same options as the wls module but optimized for Hiera, totally refactored and only for Linux and Solaris
For full hiera examples, see the usages below this page
created by Edwin Biemond email biemond at gmail dot com
biemond.blogspot.com
Github homepage
Should work for all Linux,Solaris versions like RedHat, CentOS, Ubuntu, Debian, Suse SLES, OracleLinux, Solaris 10 sparc and x86
Reference implementation, the vagrant test case for full working WebLogic 10.3.6 cluster example
https://github.com/biemond/biemond-orawls-vagrant
Reference Solaris implementation, the vagrant test case for full working WebLogic 12.1.2 cluster example
https://github.com/biemond/biemond-orawls-vagrant-solaris
Reference Oracle SOA Suite, the vagrant test case for full working WebLogic 10.3.6 SOA Suite + OSB cluster example
https://github.com/biemond/vagrant-soasuite or https://github.com/biemond/biemond-orawls-vagrant-solaris-soa
- installs WebLogic 10g,11g,12c( 12.1.1 & 12.1.2 + FMW infra )
- installs FMW add-on to a middleware home like OSB,SOA Suite, Oracle Identity Management, Web Center + Content
- apply a BSU patch on a Middleware home ( < 12.1.2 )
- apply an OPatch on a Middleware home or a Oracle product home
- creates a standard WebLogic domain
- pack a WebLogic domain
- copy a WebLogic domain to a other node with SSH, unpack and enroll to a nodemanager
- OSB, SOA Suite ( with BPM ) and BAM Cluster configuration support ( convert single osb/soa/bam servers to clusters )
- startup the nodemanager
- start or stop AdminServer, Managed or a Cluster
- storeUserConfig for storing WebLogic Credentials and using in WLST
- create Machines, Managed Servers, Clusters, Server templates, Dynamic Clusters, Coherence clusters ( all 12.1.2 )
- create Persistence Store
- create JMS Server, Module, SubDeployment, Quota, Connection Factory, JMS (distributed) Queue or Topic
- basically can run every WLST script with the flexible WLST define manifest
- WLST bulk creation
all templates creates a WebLogic domain, logs the domain creation output
- domain 'standard' -> a default WebLogic
- domain 'adf' -> JRF + EM + Coherence (12.1.2) + OWSM (12.1.2) + JAX-WS Advanced + Soap over JMS (12.1.2)
- domain 'osb' -> OSB + JRF + EM + OWSM
- domain 'osb_soa' -> OSB + SOA Suite + BAM + JRF + EM + OWSM
- domain 'osb_soa_bpm' -> OSB + SOA Suite + BAM + BPM + JRF + EM + OWSM
- domain 'soa' -> SOA Suite + BAM + JRF + EM + OWSM
- domain 'soa_bpm' -> SOA Suite + BAM + BPM + JRF + EM + OWSM
orawls::utils::wlstbulk is for now disabled so you can also use this in puppet Enterprise 3.0
requirements
- needs puppet version > 3.2 ( make use of iteration and lambda expressions )
- need to set --parser future ( puppet agent )
- to use this you need uncomment this orawls::utils::wlstbulk define and enable future parser
default this orawls module uses oracle as weblogic install user
you can override this by setting the following fact 'override_weblogic_user', like override_weblogic_user=wls or set FACTER_override_weblogic_user=wls
set the following fact 'override_weblogic_domain_folder', override_weblogic_domain_folder = /opt/oracle/wlsdomains or set FACTER_override_weblogic_domain_folder=/opt/oracle/wlsdomains
can cause certain operations to be very slow. Encryption operations need entropy to ensure randomness. Entropy is generated by the OS when you use the keyboard, the mouse or the disk.
If an encryption operation is missing entropy it will wait until enough is generated.
three options
- use rngd service (use this orawls::urandomfix class)
- set java.security in JDK ( jre/lib/security in my jdk7 module )
- set -Djava.security.egd=file:/dev/./urandom param
Some manifests like orawls:weblogic bsu opatch fmw supports an alternative mountpoint for the big oracle setup/install files.
When not provided it uses the files folder located in the orawls puppet module
else you can use $source =>
- "/mnt"
- "/vagrant"
- "puppet:///modules/orawls/" (default)
- "puppet:///middleware/"
when the files are also accesiable locally then you can also set $remote_file => false this will not move the files to the download folder, just extract or install
Contains WebLogic Facter which displays the following
- Middleware homes
- Oracle Software
- BSU & OPatch patches
- Domain configuration ( everything of a WebLogic Domain like deployments, datasource, JMS, SAF)
you need to download all the Oracle binaries and agree to the Oracle (Developer) License
WebLogic 11g:
- wls1036_generic.jar
WebLogic 11g BSU patches:
- p17071663_1036_Generic.zip
WebLogic 12.1.2:
- wls_121200.jar
- fmw_infra_121200.jar
WebLogic 12.1.2 OPatch:
- p16175470_121200_Generic.zip
install the following module to set the kernel parameters
puppet module install fiddyspence-sysctl
install the following module to set the user limits parameters
puppet module install erwbgy-limits
sysctl { 'kernel.msgmnb': ensure => 'present', permanent => 'yes', value => '65536',}
sysctl { 'kernel.msgmax': ensure => 'present', permanent => 'yes', value => '65536',}
sysctl { 'kernel.shmmax': ensure => 'present', permanent => 'yes', value => '2147483648',}
sysctl { 'kernel.shmall': ensure => 'present', permanent => 'yes', value => '2097152',}
sysctl { 'fs.file-max': ensure => 'present', permanent => 'yes', value => '344030',}
sysctl { 'net.ipv4.tcp_keepalive_time': ensure => 'present', permanent => 'yes', value => '1800',}
sysctl { 'net.ipv4.tcp_keepalive_intvl': ensure => 'present', permanent => 'yes', value => '30',}
sysctl { 'net.ipv4.tcp_keepalive_probes': ensure => 'present', permanent => 'yes', value => '5',}
sysctl { 'net.ipv4.tcp_fin_timeout': ensure => 'present', permanent => 'yes', value => '30',}
class { 'limits':
config => {'*' => { 'nofile' => { soft => '2048' , hard => '8192', },},
'oracle' => { 'nofile' => { soft => '65535' , hard => '65535', },
'nproc' => { soft => '2048' , hard => '2048', },
'memlock' => { soft => '1048576', hard => '1048576',},},},
use_hiera => false,}
create user and group
group { 'dba' :
ensure => present,
}
# http://raftaman.net/?p=1311 for generating password
user { 'oracle' :
ensure => present,
groups => 'dba',
shell => '/bin/bash',
password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.',
home => "/home/oracle",
comment => 'Oracle user created by Puppet',
managehome => true,
require => Group['dba'],
}
if you don't want to provide the same parameters in all the defines and classes
hiera.yaml main configuration
---
:backends: yaml
:yaml:
:datadir: /vagrant/puppet/hieradata
:hierarchy:
- "%{::fqdn}"
- common
vagrantcentos64.example.com.yaml
---
common.yaml
---
# global WebLogic vars
wls_oracle_base_home_dir: &wls_oracle_base_home_dir "/opt/oracle"
wls_weblogic_user: &wls_weblogic_user "weblogic"
# 12.1.2 settings
#wls_weblogic_home_dir: &wls_weblogic_home_dir "/opt/oracle/middleware12c/wlserver"
#wls_middleware_home_dir: &wls_middleware_home_dir "/opt/oracle/middleware12c"
#wls_version: &wls_version 1212
# 10.3.6 settings
wls_weblogic_home_dir: &wls_weblogic_home_dir "/opt/oracle/middleware11g/wlserver_10.3"
wls_middleware_home_dir: &wls_middleware_home_dir "/opt/oracle/middleware11g"
wls_version: &wls_version 1036
# global OS vars
wls_os_user: &wls_os_user "oracle"
wls_os_group: &wls_os_group "dba"
wls_download_dir: &wls_download_dir "/data/install"
wls_source: &wls_source "/vagrant"
wls_jdk_home_dir: &wls_jdk_home_dir "/usr/java/jdk1.7.0_45"
wls_log_dir: &wls_log_dir "/data/logs"
#WebLogic installation variables
orawls::weblogic::version: *wls_version
orawls::weblogic::filename: "wls1036_generic.jar"
# weblogic 12.1.2
#orawls::weblogic::filename: "wls_121200.jar"
# or with 12.1.2 FMW infra
#orawls::weblogic::filename: "fmw_infra_121200.jar"
#orawls::weblogic::fmw_infra: true
orawls::weblogic::middleware_home_dir: *wls_middleware_home_dir
orawls::weblogic::log_output: false
# hiera default anchors
orawls::weblogic::jdk_home_dir: *wls_jdk_home_dir
orawls::weblogic::oracle_base_home_dir: *wls_oracle_base_home_dir
orawls::weblogic::os_user: *wls_os_user
orawls::weblogic::os_group: *wls_os_group
orawls::weblogic::download_dir: *wls_download_dir
orawls::weblogic::source: *wls_source
###orawls::weblogic
installs WebLogic 10.3.[0-6], 12.1.1 or 12.1.2
these settings works for wls_121200.jar when you want to install the 12.1.2 FMW infra version
use fmw_infra_121200.jar as filename and set fmw_infra parameter to true
class{'orawls::weblogic':
version => 1212, # 1036|1211|1212
filename => 'wls_121200.jar', # wls1036_generic.jar|wls1211_generic.jar|wls_121200.jar
jdk_home_dir => '/usr/java/jdk1.7.0_45',
oracle_base_home_dir => "/opt/oracle",
middleware_home_dir => "/opt/oracle/middleware12c",
os_user => "oracle",
os_group => "dba",
download_dir => "/data/install",
source => "/vagrant", # puppet:///modules/orawls/ | /mnt |
log_output => true,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
include orawls::weblogic
or this
class{'orawls::weblogic':
log_output => true,
}
vagrantcentos64.example.com.yaml
---
orawls::weblogic::log_output: true
###orawls::opatch apply an OPatch on a Middleware home or a Oracle product home
orawls::opatch {'16175470':
oracle_product_home_dir => "/opt/oracle/middleware12c",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
patch_id => "16175470",
patch_file => "p16175470_121200_Generic.zip",
os_user => "oracle",
os_group => "dba",
download_dir => "/data/install",
source => "/vagrant",
log_output => false,
}
or when you set the defaults hiera variables
orawls::opatch {'16175470':
oracle_product_home_dir => "/opt/oracle/middleware12c",
patch_id => "16175470",
patch_file => "p16175470_121200_Generic.zip",
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
$default_params = {}
$opatch_instances = hiera('opatch_instances', [])
create_resources('orawls::opatch',$opatch_instances, $default_params)
common.yaml
---
opatch_instances:
'16175470':
oracle_product_home_dir: "/opt/oracle/middleware12c"
patch_id: "16175470"
patch_file: "p16175470_121200_Generic.zip"
jdk_home_dir "/usr/java/jdk1.7.0_45"
os_user: "oracle"
os_group: "dba"
download_dir: "/data/install"
source: "/vagrant"
log_output: true
or when you set the defaults hiera variables
---
opatch_instances:
'16175470':
oracle_product_home_dir: "/opt/oracle/middleware12c"
patch_id: "16175470"
patch_file: "p16175470_121200_Generic.zip"
###orawls::bsu apply a WebLogic BSU Patch
orawls::bsu {'BYJ1':
middleware_home_dir => "/opt/oracle/middleware11gR1",
weblogic_home_dir => "/opt/oracle/middleware11gR1/wlserver",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
patch_id => "BYJ1",
patch_file => "p17071663_1036_Generic.zip",
os_user => "oracle",
os_group => "dba",
download_dir => "/data/install",
source => "/vagrant",
log_output => false,
}
or when you set the defaults hiera variables
orawls::bsu {'BYJ1':
patch_id => "BYJ1",
patch_file => "p17071663_1036_Generic.zip",
log_output => false,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
$default_params = {}
$bsu_instances = hiera('bsu_instances', [])
create_resources('orawls::bsu',$bsu_instances, $default_params)
common.yaml
---
bsu_instances:
'BYJ1':
middleware_home_dir: "/opt/oracle/middleware11gR1"
weblogic_home_dir: "/opt/oracle/middleware11gR1/wlserver"
jdk_home_dir: "/usr/java/jdk1.7.0_45"
patch_id: "BYJ1"
patch_file: "p17071663_1036_Generic.zip"
os_user: "oracle"
os_group: "dba"
download_dir: "/data/install"
source: "/vagrant"
log_output: false
or when you set the defaults hiera variables
---
bsu_instances:
'BYJ1':
patch_id: "BYJ1"
patch_file: "p17071663_1036_Generic.zip"
log_output: false
###orawls::fmw install FMW add-on to a middleware home like OSB,SOA Suite, Oracle Identity Management, Web Center + Content
orawls::fmw{"osbPS6":
middleware_home_dir => "/opt/oracle/middleware11gR1",
weblogic_home_dir => "/opt/oracle/middleware11gR1/wlserver",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
oracle_base_home_dir => "/opt/oracle",
fmw_product => "osb", # adf|soa|osb|oim|wc|wcc
fmw_file1 => "ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip",
os_user => "oracle",
os_group => "dba",
download_dir => "/data/install",
source => "/vagrant",
log_output => false,
}
or when you set the defaults hiera variables
orawls::fmw{"osbPS6":
fmw_product => "osb" # adf|soa|osb|oim|wc|wcc
fmw_file1 => "ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip",
log_output => false,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
$default_params = {}
$fmw_installations = hiera('fmw_installations', [])
create_resources('orawls::fmw',$fmw_installations, $default_params)
common.yaml
when you set the defaults hiera variables
---
# FMW installation on top of WebLogic 10.3.6
fmw_installations:
'osbPS6':
fmw_product: "osb"
fmw_file1: "ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip"
log_output: true
'soaPS6':
fmw_product: "soa"
fmw_file1: "ofm_soa_generic_11.1.1.7.0_disk1_1of2.zip"
fmw_file2: "ofm_soa_generic_11.1.1.7.0_disk1_2of2.zip"
log_output: true
###orawls::domain creates WebLogic a standard | OSB or SOA Suite WebLogic Domain
orawls::domain { 'wlsDomain12c':
version => 1212, # 1036|1111|1211|1212
weblogic_home_dir => "/opt/oracle/middleware12c/wlserver",
middleware_home_dir => "/opt/oracle/middleware12c",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
domain_template => "standard", #standard|adf|osb|osb_soa|osb_soa_bpm|soa|soa_bpm
domain_name => "Wls12c",
development_mode => false,
adminserver_name => "AdminServer",
adminserver_address => "localhost",
adminserver_port => 7001,
nodemanager_port => 5556,
weblogic_user => "weblogic",
weblogic_password => "weblogic1",
os_user => "oracle",
os_group => "dba",
log_dir => "/data/logs",
download_dir => "/data/install",
log_output => true,
}
or when you set the defaults hiera variables
orawls::domain { 'wlsDomain12c':
domain_template => "standard",
domain_name => "Wls12c",
development_mode => false,
adminserver_name => "AdminServer",
adminserver_address => "localhost",
adminserver_port => 7001,
nodemanager_port => 5556,
weblogic_password => "weblogic1",
log_output => true,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
$default = {}
$domain_instances = hiera('domain_instances', [])
create_resources('orawls::domain',$domain_instances, $default)
vagrantcentos64.example.com.yaml
---
domain_instances:
'wlsDomain12c':
version: 1212
weblogic_home_dir "/opt/oracle/middleware12c/wlserver"
middleware_home_dir "/opt/oracle/middleware12c"
jdk_home_dir "/usr/java/jdk1.7.0_45"
domain_template: "standard"
domain_name: "Wls12c"
development_mode: false
adminserver_name: "AdminServer"
adminserver_address: "localhost"
adminserver_port: 7001
nodemanager_port: 5556
weblogic_user: "weblogic"
weblogic_password: "weblogic1"
os_user: "oracle"
os_group: "dba"
log_dir: "/data/logs"
download_dir: "/data/install"
log_output: true
or when you set the defaults hiera variables
---
domain_instances:
'wlsDomain12c':
domain_template: "standard"
domain_name: "Wls12c"
development_mode: false
adminserver_name: "AdminServer"
adminserver_address: "localhost"
adminserver_port: 7001
nodemanager_port: 5556
weblogic_password: "weblogic1"
log_output: true
when you just have one WebLogic domain on a server
---
# when you have just one domain on a server
domain_name: "Wls1036"
domain_adminserver: "AdminServer"
domain_adminserver_address: "localhost"
domain_adminserver_port: 7001
domain_nodemanager_port: 5556
domain_wls_password: "weblogic1"
# create a standard domain
domain_instances:
'wlsDomain':
domain_template: "standard"
development_mode: false
log_output: *logoutput
###orawls::packdomain pack a WebLogic Domain and add this to the download folder
$default_params = {}
$pack_domain_instances = hiera('pack_domain_instances', [])
create_resources('orawls::packdomain',$pack_domain_instances, $default_params)
# pack domains
pack_domain_instances:
'wlsDomain':
log_output: *logoutput
###orawls::copydomain copies a WebLogic domain with SSH, unpack and enroll to a nodemanager
Configuration with Hiera ( need to have puppet > 3.0 )
$default_params = {}
$copy_instances = hiera('copy_instances', [])
create_resources('orawls::copydomain',$copy_instances, $default_params)
when you just have one WebLogic domain on a server
---
# when you have just one domain on a server
domain_name: "Wls1036"
domain_adminserver: "AdminServer"
domain_adminserver_address: "localhost"
domain_adminserver_port: 7001
domain_nodemanager_port: 5556
domain_wls_password: "weblogic1"
# copy domains to other nodes
copy_instances:
'wlsDomain':
log_output: *logoutput
###orawls::nodemanager start the nodemanager of a WebLogic Domain or Middleware Home
orawls::nodemanager{'nodemanager12c':
version => 1212, # 1036|1111|1211|1212
weblogic_home_dir => "/opt/oracle/middleware12c/wlserver",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
nodemanager_port => 5556,
domain_name => "Wls12c",
os_user => "oracle",
os_group => "dba",
log_dir => "/data/logs",
download_dir => "/data/install",
log_output => true,
}
or when you set the defaults hiera variables
orawls::nodemanager{'nodemanager12c':
nodemanager_port => 5556,
domain_name => "Wls12c",
log_output => true,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
$default = {}
$nodemanager_instances = hiera('nodemanager_instances', [])
create_resources('orawls::nodemanager',$nodemanager_instances, $default)
vagrantcentos64.example.com.yaml
---
nodemanager_instances:
'nodemanager12c':
version: 1212
weblogic_home_dir "/opt/oracle/middleware12c/wlserver"
jdk_home_dir "/usr/java/jdk1.7.0_45"
nodemanager_port: 5556
domain_name: "Wls12c"
os_user: "oracle"
os_group: "dba"
log_dir: "/data/logs"
download_dir: "/data/install"
log_output: true
or when you set the defaults hiera variables
---
nodemanager_instances:
'nodemanager12c':
nodemanager_port: 5556
domain_name: "Wls12c"
log_output: true
when you just have one WebLogic domain on a server
#when you just have one domain on a server
domain_name: "Wls1036"
domain_nodemanager_port: 5556
---
nodemanager_instances:
'nodemanager12c':
log_output: true
###orawls::control start or stops the AdminServer,Managed Server or a Cluster of a WebLogic Domain
orawls::control{'startWLSAdminServer12c':
domain_name => "Wls12c",
domain_dir => "/opt/oracle/middleware12c/user_projects/domains/Wls12c",
server_type => 'admin', # admin|managed
target => 'Server', # Server|Cluster
server => 'AdminServer',
action => 'start',
weblogic_home_dir => "/opt/oracle/middleware12c/wlserver",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
weblogic_user => "weblogic",
weblogic_password => "weblogic1",
adminserver_address => 'localhost',
adminserver_port => 7001,
nodemanager_port => 5556,
os_user => "oracle",
os_group => "dba",
download_dir => "/data/install",
log_output => true,
}
or when you set the defaults hiera variables
orawls::control{'startWLSAdminServer12c':
domain_name => "Wls12c",
domain_dir => "/opt/oracle/middleware12c/user_projects/domains/Wls12c",
server_type => 'admin', # admin|managed
target => 'Server', # Server|Cluster
server => 'AdminServer',
action => 'start',
weblogic_password => "weblogic1",
adminserver_address => 'localhost',
adminserver_port => 7001,
nodemanager_port => 5556,
log_output => true,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
$default = {}
$control_instances = hiera('control_instances', [])
create_resources('orawls::control',$control_instances, $default)
vagrantcentos64.example.com.yaml
---
control_instances:
'startWLSAdminServer12c':
domain_name: "Wls12c"
domain_dir: "/opt/oracle/middleware12c/user_projects/domains/Wls12c"
server_type: 'admin'
target: 'Server'
server: 'AdminServer'
action: 'start'
weblogic_home_dir "/opt/oracle/middleware12c/wlserver"
jdk_home_dir "/usr/java/jdk1.7.0_45"
weblogic_user: "weblogic"
weblogic_password: "weblogic1"
adminserver_address: 'localhost'
adminserver_port: 7001
nodemanager_port: 5556
os_user: "oracle"
os_group: "dba"
download_dir: "/data/install"
log_output: true
or when you set the defaults hiera variables
---
control_instances:
'startWLSAdminServer12c':
domain_name: "Wls12c"
domain_dir: "/opt/oracle/middleware12c/user_projects/domains/Wls12c"
server_type: 'admin'
target: 'Server'
server: 'AdminServer'
action: 'start'
weblogic_password: "weblogic1"
adminserver_address: 'localhost'
adminserver_port: 7001
nodemanager_port: 5556
log_output: true
when you just have one WebLogic domain on a server
---
#when you just have one domain on a server
domain_name: "Wls1036"
domain_adminserver_address: "localhost"
domain_adminserver_port: 7001
domain_nodemanager_port: 5556
domain_wls_password: "weblogic1"
# startup adminserver for extra configuration
control_instances:
'startWLSAdminServer':
domain_dir: "/opt/oracle/middleware11g/user_projects/domains/Wls1036"
server_type: 'admin'
target: 'Server'
server: 'AdminServer'
action: 'start'
log_output: *logoutput
###orawls::control Linux low on entropy or urandom fix can cause certain operations to be very slow. Encryption operations need entropy to ensure randomness. Entropy is generated by the OS when you use the keyboard, the mouse or the disk.
If an encryption operation is missing entropy it will wait until enough is generated.
three options
- use rngd service (use this wls::urandomfix class)
- set java.security in JDK ( jre/lib/security in my jdk7 module )
- set -Djava.security.egd=file:/dev/./urandom param
###orawls::storeuserconfig Creates WLST user config for WLST , this way you don't need to know the weblogic password. when you set the defaults hiera variables
orawls::storeuserconfig{'Wls12c':
domain_name => "Wls12c",
adminserver_address => "localhost",
adminserver_port => 7001,
weblogic_password => "weblogic1",
user_config_dir => '/home/oracle',
weblogic_password => undef,
log_output => false,
}
Same configuration but then with Hiera ( need to have puppet > 3.0 )
notify { 'class userconfig':}
$default_params = {}
$userconfig_instances = hiera('userconfig_instances', [])
create_resources('orawls::storeuserconfig',$userconfig_instances, $default_params)
vagrantcentos64.example.com.yaml or when you set the defaults hiera variables
---
userconfig_instances:
'Wls12c':
domain_name: "Wls12c"
adminserver_address: "localhost"
adminserver_port: 7001
weblogic_password: "weblogic1"
log_output: true
user_config_dir: '/home/oracle'
when you just have one WebLogic domain on a server
#when you just have one domain on a server
domain_name: "Wls1036"
domain_adminserver_address: "localhost"
domain_adminserver_port: 7001
domain_wls_password: "weblogic1"
---
userconfig_instances:
'Wls12c':
log_output: true
user_config_dir: '/home/oracle'
convert existing cluster to a osb or soa suite cluster (BPM is optional) and also convert BAM to a BAM cluster
see this for an example https://github.com/biemond/biemond-orawls-vagrant-solaris-soa
you need to create a osb, soa or bam cluster with some managed servers first
for the osb or soa suite managed servers make sure to set the coherence arguments parameters
$default_params = {}
$fmw_cluster_instances = hiera('fmw_cluster_instances', $default_params)
create_resources('orawls::utils::fmwcluster',$fmw_cluster_instances, $default_params)
hiera configuration
fmw_cluster_instances:
'soaCluster':
domain_dir: "/opt/oracle/middleware11g/user_projects/domains/soa_basedomain"
soa_cluster_name: "SoaCluster"
bam_cluster_name: "BamCluster"
osb_cluster_name: "OsbCluster"
log_output: true
bpm_enabled: true
bam_enabled: true
soa_enabled: true
osb_enabled: true
###orawls::wlstexec execute any WLST script you want
here some WLST examples and the matching Hiera configuration
for bulk insert of WebLogic Objects see orawls::utils::wlstbulk
full example
orawls::wlstexec{'createMachine_node1':
version => 1111,
domain_name => "Wls12c",
weblogic_home_dir => "/opt/oracle/middleware12c/wlserver",
jdk_home_dir => "/usr/java/jdk1.7.0_45",
weblogic_user => "weblogic",
weblogic_password => "weblogic1",
adminserver_address => 'localhost',
adminserver_port => 7001,
os_user => "oracle",
os_group => "dba",
download_dir => "/data/install",
log_output => true,
script => 'createMachine.py',
weblogic_type => "machine",
weblogic_object_name => "Node1",
params => ["machineName = 'Node1'",
"machineDnsName = 'node1.alfa.local'",
],
}
or when you want to work with hiera
class file with create_resources utility
node 'vagrantcentos64' {
include machines,managed_servers,clusters
include jms_servers,file_persistences,jms_modules,jms_module_subdeployments
include jms_module_quotas,jms_module_cfs,jms_module_objects_errors,jms_module_objects
Class['machines'] ->
Class['managed_servers'] ->
Class['clusters'] ->
Class['file_persistences'] ->
Class['jms_servers'] ->
Class['jms_modules'] ->
Class['jms_module_subdeployments'] ->
Class['jms_module_quotas'] ->
Class['jms_module_cfs'] ->
Class['jms_module_objects_errors'] ->
Class['jms_module_objects']
}
class machines{
notify { 'class machines':}
$default_params = {}
$machines_instances = hiera('machines_instances', [])
create_resources('orawls::wlstexec',$machines_instances, $default_params)
}
class managed_servers{
notify { 'class managed_servers':}
$default_params = {}
$managed_servers_instances = hiera('managed_servers_instances', [])
create_resources('orawls::wlstexec',$managed_servers_instances, $default_params)
}
class clusters{
notify { 'class clusters':}
$default_params = {}
$cluster_instances = hiera('cluster_instances', [])
create_resources('orawls::wlstexec',$cluster_instances, $default_params)
}
class file_persistences {
notify { 'class file_persistences':}
$default_params = {}
$file_persistence_instances = hiera('file_persistence_instances', [])
create_resources('orawls::wlstexec',$file_persistence_instances, $default_params)
}
class jms_servers{
notify { 'class jms_servers':}
$default_params = {}
$jms_servers_instances = hiera('jms_servers_instances', [])
create_resources('orawls::wlstexec',$jms_servers_instances, $default_params)
}
class jms_modules{
notify { 'class jms_modules':}
$default_params = {}
$jms_module_instances = hiera('jms_module_instances', [])
create_resources('orawls::wlstexec',$jms_module_instances, $default_params)
}
class jms_module_subdeployments{
notify { 'class jms_module_subdeployments':}
$default_params = {}
$jms_module_subdeployments_instances = hiera('jms_module_subdeployments_instances', [])
create_resources('orawls::wlstexec',$jms_module_subdeployments_instances, $default_params)
}
class jms_module_quotas{
notify { 'class jms_module_quotas':}
$default_params = {}
$jms_module_quotas_instances = hiera('jms_module_quotas_instances', [])
create_resources('orawls::wlstexec',$jms_module_quotas_instances, $default_params)
}
class jms_module_cfs{
notify { 'class jms_module_cfs':}
$default_params = {}
$jms_module_cf_instances = hiera('jms_module_cf_instances', [])
create_resources('orawls::wlstexec',$jms_module_cf_instances, $default_params)
}
class jms_module_objects_errors{
notify { 'class jms_module_objects_errors':}
$default_params = {}
$jms_module_jms_errors_instances = hiera('jms_module_jms_errors_instances', [])
create_resources('orawls::wlstexec',$jms_module_jms_errors_instances, $default_params)
}
class jms_module_objects{
notify { 'class jms_module_objects':}
$default_params = {}
$jms_module_jms_instances = hiera('jms_module_jms_instances', [])
create_resources('orawls::wlstexec',$jms_module_jms_instances, $default_params)
}
Hiera configuration
here we have some options, when you just have one domain you don't need to provide all the domain parameters
default parameters
logoutput: &logoutput true
when you have just one WebLogic domain on a server
#when you have just one domain on a server
domain_name: "Wls1036"
domain_adminserver: "AdminServer"
domain_adminserver_address: "localhost"
domain_adminserver_port: 7001
domain_nodemanager_port: 5556
# provide the password or the user config and key file
#domain_wls_password: "weblogic1"
domain_user_config_file: "/home/oracle/oracle-Wls1036-WebLogicConfig.properties"
domain_user_key_file: "/home/oracle/oracle-Wls1036-WebLogicKey.properties"
when you have more than one domain on a server and you need to provide these parameters to wlstexec define
# when you have more than one domain on a server
domain_1_wls_password: &domain_1_wls_password "weblogic1"
domain_1_name: &domain_1_name "Wls1036"
domain_1_adminserver: &domain_1_adminserver "AdminServer"
domain_1_adminserver_address: &domain_1_adminserver_address "localhost"
domain_1_adminserver_port: &domain_1_adminserver_port 7001
domain_1_nodemanager_port: &domain_1_nodemanager_port 5556
Create 2 machines
machines_instances:
'createMachine_node1':
domain_name: *domain_1_name
adminserver_address: *domain_1_adminserver_address
adminserver_port: *domain_1_adminserver_port
weblogic_password: *domain_1_wls_password
log_output: *logoutput
weblogic_type: "machine"
weblogic_object_name: "Node1"
script: 'createMachine.py'
params:
- "machineName = 'Node1'"
- "machineDnsName = 'node1.alfa.local'"
'createMachine_node2':
log_output: *logoutput
weblogic_type: "machine"
weblogic_object_name: "Node2"
script: 'createMachine.py'
params:
- "machineName = 'Node2'"
- "machineDnsName = 'node2.alfa.local'"
Create 2 managed servers and assign them to the machines
managed_servers_instances:
'wlsServer1_node1':
domain_name: *domain_1_name
adminserver_address: *domain_1_adminserver_address
adminserver_port: *domain_1_adminserver_port
weblogic_password: *domain_1_wls_password
log_output: *logoutput
weblogic_type: "server"
weblogic_object_name: "wlsServer1"
script: 'createServer.py'
params:
- "javaArguments = '-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m -Dweblogic.Stdout=/data/logs/wlsServer1.out -Dweblogic.Stderr=/data/logs/wlsServer1_err.out'"
- "wlsServerName = 'wlsServer1'"
- "machineName = 'Node1'"
- "listenPort = 9201"
- "nodeMgrLogDir = '/data/logs'"
'wlsServer2_node2':
log_output: *logoutput
weblogic_type: "server"
weblogic_object_name: "wlsServer2"
script: 'createServer.py'
params:
- "javaArguments = '-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m -Dweblogic.Stdout=/data/logs/wlsServer2.out -Dweblogic.Stderr=/data/logs/wlsServer2_err.out'"
- "wlsServerName = 'wlsServer2'"
- "machineName = 'Node2'"
- "listenPort = 9201"
- "nodeMgrLogDir = '/data/logs'"
Create cluster and assign the managed servers
cluster_instances:
'cluster_web':
log_output: *logoutput
weblogic_type: "cluster"
weblogic_object_name: "WebCluster"
script: 'createCluster.py'
params:
- "clusterName = 'WebCluster'"
- "clusterNodes = 'wlsServer1,wlsServer2'"
Create File Persistence locations for the JMS servers
file_persistence_instances:
'filePersistenceNode1':
log_output: *logoutput
weblogic_type: "filestore"
weblogic_object_name: "jmsFilePersistenceNode1"
script: 'createFilePersistenceStore.py'
params:
- "fileStoreName = 'jmsFilePersistenceNode1'"
- "target = 'wlsServer1'"
- "targetType = 'Server'"
'filePersistenceNode2':
log_output: *logoutput
weblogic_type: "filestore"
weblogic_object_name: "jmsFilePersistenceNode2"
script: 'createFilePersistenceStore.py'
params:
- "fileStoreName = 'jmsFilePersistenceNode2'"
- "target = 'wlsServer2'"
- "targetType = 'Server'"
Create JMS servers with a Server & File persistence reference
jms_servers_instances:
'jmsServerNode1':
log_output: *logoutput
weblogic_type: "jmsserver"
weblogic_object_name: "jmsServer1"
script: 'createJmsServer.py'
params:
- "storeName = 'jmsFilePersistenceNode1'"
- "target = 'wlsServer1'"
- "targetType = 'Server'"
- "storeType = 'file'"
- "jmsServerName = 'jmsServer1'"
'jmsServerNode2':
log_output: *logoutput
weblogic_type: "jmsserver"
weblogic_object_name: "jmsServer2"
script: 'createJmsServer.py'
params:
- "storeName = 'jmsFilePersistenceNode2'"
- "target = 'wlsServer2'"
- "targetType = 'Server'"
- "storeType = 'file'"
- "jmsServerName = 'jmsServer2'"
Create JMS module for a cluster
jms_module_instances:
'jmsClusterModule':
log_output: *logoutput
weblogic_type: "jmsmodule"
weblogic_object_name: "jmsClusterModule"
script: 'createJmsModule.py'
params:
- "target = 'WebCluster'"
- "targetType = 'Cluster'"
- "jmsModuleName = 'jmsClusterModule'"
Create JMS subdeployment for the jms module ( targets Clusters and all the JMS servers )
jms_module_subdeployments_instances:
'SubDeploymentWLSforJmsModule':
log_output: *logoutput
weblogic_type: "jmssubdeployment"
weblogic_object_name: "jmsClusterModule/wlsServers"
script: 'createJmsSubDeployment.py'
params:
- "target = 'WebCluster'"
- "targetType = 'Cluster'"
- "subName = 'wlsServers'"
- "jmsModuleName = 'jmsClusterModule'"
'SubDeploymentJMSforJmsModule':
log_output: *logoutput
weblogic_type: "jmssubdeployment"
weblogic_object_name: "jmsClusterModule/jmsServers"
script: 'createJmsSubDeployment.py'
params:
- "target = 'jmsServer1,jmsServer2'"
- "targetType = 'JMSServer'"
- "subName = 'jmsServers'"
- "jmsModuleName = 'jmsClusterModule'"
Create JMS quotas for the jms module
jms_module_quotas_instances:
'QuotaBigforJmsModule':
log_output: *logoutput
weblogic_type: "jmsquota"
weblogic_object_name: "jmsClusterModule/QuotaBig"
script: 'createJmsQuota.py'
params:
- "jmsQuotaName = 'QuotaBig'"
- "bytesMaximum = 9223372036854775807"
- "messagesMaximum = 9223372036854775807"
- "jmsModuleName = 'jmsClusterModule'"
- "shared = false"
- "policy = 'FIFO'"
'QuotaLowforJmsModule':
log_output: *logoutput
weblogic_type: "jmsquota"
weblogic_object_name: "jmsClusterModule/QuotaLow"
script: 'createJmsQuota.py'
params:
- "jmsQuotaName = 'QuotaLow'"
- "bytesMaximum = 10000000000"
- "messagesMaximum = 10000"
- "jmsModuleName = 'jmsClusterModule'"
- "shared = false"
- "policy = 'FIFO'"
Create JMS connection factory in a JMS module
jms_module_cf_instances:
'createJmsConnectionFactoryforJmsModule':
log_output: *logoutput
weblogic_type: "jmsobject"
weblogic_object_name: "cf"
script: 'createJmsConnectionFactory.py'
params:
- "subDeploymentName = 'wlsServers'"
- "jmsModuleName = 'jmsClusterModule'"
- "cfName = 'cf'"
- "cfJNDIName = 'jms/cf'"
- "transacted = 'false'"
- "timeout = 'xxxx'"
create Error JMS object for JMS redirect of Queue and Topics
jms_module_jms_errors_instances:
'createJmsErrorQueueforJmsModule':
log_output: *logoutput
weblogic_type: "jmsobject"
weblogic_object_name: "ErrorQueue"
script: 'createJmsQueueOrTopic.py'
params:
- "subDeploymentName = 'jmsServers'"
- "jmsModuleName = 'jmsClusterModule'"
- "jmsName = 'ErrorQueue'"
- "jmsJNDIName = 'jms/ErrorQueue'"
- "jmsType = 'queue'"
- "distributed = 'true'"
- "balancingPolicy = 'Round-Robin'"
- "useRedirect = 'false'"
- "limit = 'xxxxx'"
- "policy = 'xxxxx'"
- "errorObject = 'xxxxx'"
create JMS objects ( Queue and a Topic ) in a JMS module
jms_module_jms_instances:
'createJmsQueueforJmsModule':
log_output: *logoutput
weblogic_type: "jmsobject"
weblogic_object_name: "Queue1"
script: 'createJmsQueueOrTopic.py'
params:
- "subDeploymentName = 'jmsServers'"
- "jmsModuleName = 'jmsClusterModule'"
- "jmsName = 'Queue1'"
- "jmsJNDIName = 'jms/Queue1'"
- "jmsType = 'queue'"
- "distributed = 'true'"
- "balancingPolicy = 'Round-Robin'"
- "useRedirect = 'true'"
- "limit = '3'"
- "policy = 'Redirect'"
- "errorObject = 'ErrorQueue'"
'createJmsTopicforJmsModule':
log_output: *logoutput
weblogic_type: "jmsobject"
weblogic_object_name: "Topic1"
script: 'createJmsQueueOrTopic.py'
params:
- "subDeploymentName = 'jmsServers'"
- "jmsModuleName = 'jmsClusterModule'"
- "jmsName = 'Topic1'"
- "jmsJNDIName = 'jms/Topic1'"
- "jmsType = 'topic'"
- "distributed = 'true'"
- "balancingPolicy = 'Round-Robin'"
- "useRedirect = 'true'"
- "limit = '3'"
- "policy = 'Redirect'"
- "errorObject = 'ErrorQueue'"
###orawls::utils::wlstbulk execute any WLST script you want( bulk mode )
requirements
- need puppet version > 3.2 ( make use of iteration and lambda expressions
- need to set --parser future ( puppet agent )
to use this you need uncomment this orawls::utils::wlstbulk define and enable future parser
use hiera_array, this will search for this entry in all hiera data files
example how to call this wlstbulk define
$allHieraEntries = hiera_array('jms_module_jms_instances')
orawls::utils::wlstbulk{ 'jms_module_jms_instances':
entries_array => $allHieraEntries,
}
possible hiera examples ( use hiera_array )
with global parameters and inside with params
jms_module_instances:
- clusterOne:
global_parameters:
log_output: *logoutput
weblogic_type: "jmsmodule"
script: 'createJmsModule.py'
params:
- "jmsModuleName = 'jmsClusterModule'"
jmsClusterModule:
weblogic_object_name: "jmsClusterModule"
params:
- "target = 'WebCluster'"
- "targetType = 'Cluster'"
with global parameters
managed_servers_instances:
- clusterOne:
global_parameters:
log_output: *logoutput
weblogic_type: "server"
script: 'createServer.py'
wlsServer1_node1:
weblogic_object_name: "wlsServer1"
params:
- "javaArguments = '-XX:PermSize=256m -XX:MaxPermSize=256m -Xms752m -Xmx752m -Dweblogic.Stdout=/data/logs/wlsServer1.out -Dweblogic.Stderr=/data/logs/wlsServer1_err.out'"
- "wlsServerName = 'wlsServer1'"
- "machineName = 'Node1'"
- "listenAddress = 8001"
- "nodeMgrLogDir = '/data/logs'"
wlsServer2_node2:
weblogic_object_name: "wlsServer2"
params:
- "javaArguments = '-XX:PermSize=256m -XX:MaxPermSize=256m -Xms752m -Xmx752m -Dweblogic.Stdout=/data/logs/wlsServer2.out -Dweblogic.Stderr=/data/logs/wlsServer2_err.out'"
- "wlsServerName = 'wlsServer2'"
- "machineName = 'Node2'"
- "listenAddress = 8001"
- "nodeMgrLogDir = '/data/logs'"
no global parameters
cluster_instances:
- clusterOne:
cluster_web:
weblogic_object_name: "WebCluster"
log_output: *logoutput
weblogic_type: "cluster"
script: 'createCluster.py'
params:
- "clusterName = 'WebCluster'"
- "clusterNodes = 'wlsServer1,wlsServer2'"
with empty global parameters
jms_servers_instances:
- clusterOne:
global_parameters:
jmsServerNode1:
log_output: *logoutput
weblogic_type: "jmsserver"
script: 'createJmsServer.py'
weblogic_object_name: "jmsServer1"
params:
- "target = 'wlsServer1'"
- "jmsServerName = 'jmsServer1'"
- "targetType = 'Server'"
jmsServerNode2:
log_output: *logoutput
weblogic_type: "jmsserver"
script: 'createJmsServer.py'
weblogic_object_name: "jmsServer2"
params:
- "target = 'wlsServer2'"
- "jmsServerName = 'jmsServer2'"
- "targetType = 'Server'"
or inside puppet
$entries_array =
[{ 'ClusterOne' => {
'global_parameters' =>
{
log_output => true,
weblogic_type => "jmsobject",
script => 'createJmsQueueOrTopic.py',
params =>
[ "subDeploymentName = 'jmsServers'",
"jmsModuleName = 'jmsClusterModule'",
"distributed = 'true'",
"balancingPolicy = 'Round-Robin'",
"useRedirect = 'true'",
"limit = '3'",
"policy = 'Redirect'",
"errorObject = 'ErrorQueue'",
],
} ,
'createJmsQueueforJmsModule1' =>
{
weblogic_object_name => "Queue1",
params =>
[ "jmsType = 'queue'",
"jmsName = 'Queue1'",
"jmsJNDIName = 'jms/Queue1'",
],
} ,
'createJmsQueueforJmsModule2' =>
{
weblogic_object_name => "Queue2",
params =>
[ "jmsType = 'queue'",
"jmsName = 'Queue2'",
"jmsJNDIName = 'jms/Queue2'",
],
},
},
},
]