#Oracle WebLogic / Fusion Middleware puppet module V2
created by Edwin Biemond email biemond at gmail dot com
biemond.blogspot.com
Github homepage
Got the same options as the wls module but with
- types & providers instead of wlstexec scripts ( detect changes )
- optimized for Hiera
- totally refactored
- only for Linux and Solaris
Many thanks to Bert Hajee (hajee) for his contributions, help and the his easy_type module
Should work for all Linux & Solaris versions like RedHat, CentOS, Ubuntu, Debian, Suse SLES, OracleLinux, Solaris 10 sparc / x86
Dependency with hajee/easy_type >= 0.6.2
##Complete examples see the following usages below
###Puppetmaster (vagrant box) Example of Opensource Puppet 3.4.3 Puppet master configuration in a vagrant box (https://github.com/biemond/vagrant-puppetmaster)
- oradb (oracle database 11.2.0.4 )
- adminwls with nodewls1 & nodewls2 (cluster 10.3.6 with JMS)
- adminwls2 ( adminserver 10.3.6 with JMS)
- adminwls3 ( adminserver 12.1.2 )
- adminwls4 ( adminserver 10.3.6 + osb PS6 + soa suite PS6 ( with bpm & bam ))
- adminwls5 ( adminserver 10.3.6 + osb PS6 )
###Masterless (vagrant box)
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
##Orawls WebLogic Features
- 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 )
- ADF/JRF support, Assign JRF libraries to a Server or Cluster target
- startup the nodemanager
- start or stop AdminServer, Managed or a Cluster
- storeUserConfig for storing WebLogic Credentials and using in WLST
##Wls types and providers ( ensurable, create,modify,destroy ) + puppet resource
- wls_setting, set the default wls parameters for the other types and also used by puppet resource
- wls_machine
- wls_server
- wls_cluster
- wls_datasource
- wls_file_persistence_store
- wls_jmsserver
- wls_safagent
- wls_jms_module
- wls_jms_quota
- wls_jms_subdeployment
- wls_jms_queue
- wls_jms_topic
- wls_jms_connection_factory
##Domain creation options (Dev or Prod mode)
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
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)
##Override the default Oracle operating system user
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
##Override the default Weblogic domains folder like user_projects
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
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
##WebLogic requirements
Operating System settings like User, Group, ULimits and kernel parameters requirements
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 a WebLogic 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'],
}
##Necessary Hiera setup for global vars and Facter
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
##WebLogic Module Usage
###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,
}
or with a bin file located on a share
class{'orawls::weblogic':
version => 1036,
filename => "oepe-wls-indigo-installer-11.1.1.8.0.201110211138-10.3.6-linux32.bin",
oracle_base_home_dir => "/opt/weblogic",
middleware_home_dir => "/opt/weblogic/Middleware",
fmw_infra => false,
jdk_home_dir => "/usr/java/latest",
os_user => "weblogic",
os_group => "bea",
download_dir => "/data/tmp",
source => "/misc/tact/products/oracle/11g/fmw/wls/11.1.1.8",
remote_file => false,
log_output => true,
temp_directory => "/data/tmp",
}
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
optional override the default server arguments in the domain.py template with java_arguments parameter
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,
java_arguments => { "ADM" => "...", "OSB" => "...", "SOA" => "...", "BAM" => "..."},
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"
java_arguments:
ADM: "-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m"
OSB: "-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m"
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"
java_arguments:
ADM: "-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m"
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
##Types and providers
###wls_setting, required for wls type/providers
wls_setting { 'default':
user => 'oracle',
weblogic_home_dir => '/opt/oracle/middleware11g/wlserver_10.3',
connect_url => "t3://localhost:7001",
weblogic_user => 'weblogic',
weblogic_password => 'weblogic1',
}
###wls_machine
it needs wls_setting
or use puppet resource wls_machine
wls_machine { 'test2':
ensure => 'present',
listenaddress => '10.10.10.10',
listenport => '5556',
machinetype => 'UnixMachine',
nmtype => 'SSL',
}
in hiera
machines_instances:
'Node1':
ensure: 'present'
listenaddress: '10.10.10.100'
listenport: '5556'
machinetype: 'UnixMachine'
nmtype: 'SSL'
'Node2':
ensure: 'present'
listenaddress: '10.10.10.200'
listenport: '5556'
machinetype: 'UnixMachine'
nmtype: 'SSL'
###wls_server
needs wls_setting
or use puppet resource wls_server
wls_server { 'wlsServer3':
ensure => 'present',
arguments => '-XX:PermSize=256m -XX:MaxPermSize=256m -Xms752m -Xmx752m -Dweblogic.Stdout=/data/logs/wlsServer1.out -Dweblogic.Stderr=/data/logs/wlsServer1_err.out',
listenaddress => '10.10.10.100',
listenport => '8002',
logfilename => '/data/logs/wlsServer3.log',
machine => 'Node1',
sslenabled => '0',
sslhostnameverificationignored => '1',
ssllistenport => '7002',
}
in hiera
server_instances:
'wlsServer1':
ensure: 'present'
arguments: '-XX:PermSize=256m -XX:MaxPermSize=256m -Xms752m -Xmx752m -Dweblogic.Stdout=/data/logs/wlsServer1.out -Dweblogic.Stderr=/data/logs/wlsServer1_err.out'
listenaddress: '10.10.10.100'
listenport: '8001'
logfilename: '/data/logs/wlsServer1.log'
machine: 'Node1'
sslenabled: '1'
ssllistenport: '8201'
sslhostnameverificationignored: '1'
###wls_cluster
needs wls_setting
or use puppet resource wls_cluster
wls_cluster { 'WebCluster':
ensure => 'present',
messagingmode => 'unicast',
migrationbasis => 'consensus',
servers => 'wlsServer3,wlsServer4',
}
in hiera
cluster_instances:
'WebCluster':
ensure: 'present'
messagingmode: 'unicast'
migrationbasis: 'consensus'
servers: 'wlsServer1,wlsServer2'
###wls_file_persistence_store
needs wls_setting
or use puppet resource wls_file_persistence_store
wls_file_persistence_store { 'jmsFile1':
ensure => 'present',
directory => 'persistence1',
target => 'wlsServer1',
targettype => 'Server',
}
wls_file_persistence_store { 'jmsFile2':
ensure => 'present',
directory => 'persistence2',
target => 'wlsServer2',
targettype => 'Server',
}
wls_file_persistence_store { 'jmsFileSAFAgent1':
ensure => 'present',
directory => 'persistenceSaf1',
target => 'wlsServer1',
targettype => 'Server',
}
in hiera
file_persistence_store_instances:
'jmsFile1':
ensure: 'present'
directory: 'persistence1'
target: 'wlsServer1'
targettype: 'Server'
'jmsFile2':
ensure: 'present'
directory: 'persistence2'
target: 'wlsServer2'
targettype: 'Server'
'jmsFileSAFAgent1':
ensure: 'present'
directory: 'persistenceSaf1'
target: 'wlsServer1'
targettype: 'Server'
###wls_safagent
needs wls_setting
or use puppet resource wls_safagent
wls_safagent { 'jmsSAFAgent1':
ensure => 'present',
persistentstore => 'jmsFileSAFAgent1',
persistentstoretype => 'FileStore',
servicetype => 'Sending-only',
target => 'wlsServer1',
targettype => 'Server',
}
wls_safagent { 'jmsSAFAgent2':
ensure => 'present',
servicetype => 'Both',
target => 'wlsServer2',
targettype => 'Server',
}
in hiera
safagent_instances:
'jmsSAFAgent1':
ensure: 'present'
target: 'wlsServer1'
targettype: 'Server'
servicetype: 'Sending-only'
persistentstore: 'jmsFileSAFAgent1'
persistentstoretype: 'FileStore'
'jmsSAFAgent2':
ensure: 'present'
target: 'wlsServer2'
targettype: 'Server'
servicetype: 'Both'
###wls_jmsserver
needs wls_setting
or use puppet resource wls_jmsserver
wls_jmsserver { 'jmsServer1':
ensure => 'present',
persistentstore => 'jmsFile1',
persistentstoretype => 'FileStore',
target => 'wlsServer1',
targettype => 'Server',
}
wls_jmsserver { 'jmsServer2':
ensure => 'present',
target => 'wlsServer2',
targettype => 'Server',
}
wls_jmsserver { 'jmsServer3':
ensure => 'present',
target => 'wlsServer3',
targettype => 'Server',
}
in hiera
jmsserver_instances:
jmsServer1:
ensure: 'present'
target: 'wlsServer1'
targettype: 'Server'
persistentstore: 'jmsFile1'
persistentstoretype: 'FileStore'
jmsServer2:
ensure: 'present'
target: 'wlsServer2'
targettype: 'Server'
###wls_datasource
needs wls_setting
or use puppet resource wls_datasource
wls_datasource { 'hrDS':
ensure => 'present',
drivername => 'oracle.jdbc.xa.client.OracleXADataSource',
extraproperties => 'SendStreamAsBlob,oracle.net.CONNECT_TIMEOUT',
extrapropertiesvalues => 'true,10000',
globaltransactionsprotocol => 'TwoPhaseCommit',
initialcapacity => '1',
jndinames => 'jdbc/hrDS',
maxcapacity => '15',
target => 'WebCluster,WebCluster2',
targettype => 'Cluster,Cluster',
testtablename => 'SQL SELECT 1 FROM DUAL',
url => 'jdbc:oracle:thin:@dbagent2.alfa.local:1521/test.oracle.com',
user => 'hr',
usexa => '1',
}
wls_datasource { 'jmsDS':
ensure => 'present',
drivername => 'com.mysql.jdbc.Driver',
globaltransactionsprotocol => 'None',
initialcapacity => '1',
jndinames => 'jmsDS',
maxcapacity => '15',
target => 'WebCluster',
targettype => 'Cluster',
testtablename => 'SQL SELECT 1',
url => 'jdbc:mysql://10.10.10.10:3306/jms',
user => 'jms',
usexa => '1',
}
in hiera
datasource_instances:
'hrDS':
ensure: 'present'
drivername: 'oracle.jdbc.xa.client.OracleXADataSource'
extraproperties: 'SendStreamAsBlob,oracle.net.CONNECT_TIMEOUT'
extrapropertiesvalues: 'true,10000'
globaltransactionsprotocol: 'TwoPhaseCommit'
initialcapacity: '1'
jndinames: 'jdbc/hrDS'
maxcapacity: '15'
target: 'WebCluster,WebCluster2'
targettype: 'Cluster,Cluster'
testtablename: 'SQL SELECT 1 FROM DUAL'
url: "jdbc:oracle:thin:@dbagent2.alfa.local:1521/test.oracle.com"
user: 'hr'
usexa: '1'
'jmsDS':
ensure: 'present'
drivername: 'com.mysql.jdbc.Driver'
globaltransactionsprotocol: 'None'
initialcapacity: '1'
jndinames: 'jmsDS'
maxcapacity: '15'
target: 'WebCluster'
targettype: 'Cluster'
testtablename: 'SQL SELECT 1'
url: 'jdbc:mysql://10.10.10.10:3306/jms'
user: 'jms'
usexa: '1'
###wls_jms_module
needs wls_setting
or use puppet resource wls_jms_module
wls_jms_module { 'jmsClusterModule':
ensure => 'present',
target => 'WebCluster',
targettype => 'Cluster',
}
in hiera
jms_module_instances:
jmsClusterModule:
ensure: 'present'
target: 'WebCluster'
targettype: 'Cluster'
###wls_connection_factory
needs wls_setting, title must also contain the jms module name
or use puppet resource wls_connection_factory
wls_jms_connection_factory { 'jmsClusterModule:cf':
ensure => 'present',
defaulttargeting => '0',
jndiname => 'jms/cf',
subdeployment => 'wlsServers',
transactiontimeout => '3600',
xaenabled => '0',
}
wls_jms_connection_factory { 'jmsClusterModule:cf2':
ensure => 'present',
defaulttargeting => '1',
jndiname => 'jms/cf2',
subdeployment => 'cf2',
transactiontimeout => '3600',
xaenabled => '1',
}
in hiera
jms_connection_factory_instances:
'jmsClusterModule:cf':
ensure: 'present'
jmsmodule: 'jmsClusterModule'
defaulttargeting: '0'
jndiname: 'jms/cf'
subdeployment: 'wlsServers'
transactiontimeout: '3600'
xaenabled: '0'
'jmsClusterModule:cf2':
ensure: 'present'
jmsmodule: 'jmsClusterModule'
defaulttargeting: '1'
jndiname: 'jms/cf2'
transactiontimeout: '3600'
xaenabled: '1'
###wls_jms_queue
needs wls_setting, title must also contain the jms module name
or use puppet resource wls_jms_queue
wls_jms_queue { 'jmsClusterModule:ErrorQueue':
ensure => 'present',
defaulttargeting => '0',
distributed => '1',
expirationpolicy => 'Discard',
jndiname => 'jms/ErrorQueue',
redeliverydelay => '-1',
redeliverylimit => '-1',
subdeployment => 'jmsServers',
timetodeliver => '-1',
timetolive => '-1',
}
wls_jms_queue { 'jmsClusterModule:Queue1':
ensure => 'present',
defaulttargeting => '0',
distributed => '1',
errordestination => 'ErrorQueue',
expirationpolicy => 'Redirect',
jndiname => 'jms/Queue1',
redeliverydelay => '2000',
redeliverylimit => '3',
subdeployment => 'jmsServers',
timetodeliver => '-1',
timetolive => '300000',
}
wls_jms_queue { 'jmsClusterModule:Queue2':
ensure => 'present',
defaulttargeting => '0',
distributed => '1',
expirationloggingpolicy => '%header%%properties%',
expirationpolicy => 'Log',
jndiname => 'jms/Queue2',
redeliverydelay => '2000',
redeliverylimit => '3',
subdeployment => 'jmsServers',
timetodeliver => '-1',
timetolive => '300000',
}
in hiera
jms_queue_instances:
'jmsClusterModule:ErrorQueue':
ensure: 'present'
distributed: '1'
expirationpolicy: 'Discard'
jndiname: 'jms/ErrorQueue'
redeliverydelay: '-1'
redeliverylimit: '-1'
subdeployment: 'jmsServers'
defaulttargeting: '0'
timetodeliver: '-1'
timetolive: '-1'
'jmsClusterModule:Queue1':
ensure: 'present'
distributed: '1'
errordestination: 'ErrorQueue'
expirationpolicy: 'Redirect'
jndiname: 'jms/Queue1'
redeliverydelay: '2000'
redeliverylimit: '3'
subdeployment: 'jmsServers'
defaulttargeting: '0'
timetodeliver: '-1'
timetolive: '300000'
'jmsClusterModule:Queue2':
ensure: 'present'
distributed: '1'
expirationloggingpolicy: '%header%%properties%'
expirationpolicy: 'Log'
jndiname: 'jms/Queue2'
redeliverydelay: '2000'
redeliverylimit: '3'
subdeployment: 'jmsServers'
defaulttargeting: '0'
timetodeliver: '-1'
timetolive: '300000'
###wls_jms_topic
needs wls_setting, title must also contain the jms module name
or use puppet resource wls_jms_topic
wls_jms_topic { 'jmsClusterModule:Topic1':
ensure => 'present',
defaulttargeting => '0',
distributed => '1',
expirationpolicy => 'Discard',
jndiname => 'jms/Topic1',
redeliverydelay => '2000',
redeliverylimit => '2',
subdeployment => 'jmsServers',
timetodeliver => '-1',
timetolive => '300000',
}
in hiera
jms_topic_instances:
'jmsClusterModule:Topic1':
ensure: 'present'
defaulttargeting: '0'
distributed: '1'
expirationpolicy: 'Discard'
jndiname: 'jms/Topic1'
redeliverydelay: '2000'
redeliverylimit: '2'
subdeployment: 'jmsServers'
timetodeliver: '-1'
timetolive: '300000'
###wls_jms_quota
needs wls_setting, title must also contain the jms module name
or use puppet resource wls_jms_quota
wls_jms_quota { 'jmsClusterModule:QuotaBig':
ensure => 'present',
bytesmaximum => '9223372036854775807',
messagesmaximum => '9223372036854775807',
policy => 'FIFO',
shared => '1',
}
wls_jms_quota { 'jmsClusterModule:QuotaLow':
ensure => 'present',
bytesmaximum => '20000000000',
messagesmaximum => '9223372036854775807',
policy => 'FIFO',
shared => '0',
}
in hiera
jms_quota_instances:
'jmsClusterModule:QuotaBig':
ensure: 'present'
bytesmaximum: '9223372036854775807'
messagesmaximum: '9223372036854775807'
policy: 'FIFO'
shared: '1'
'jmsClusterModule:QuotaLow':
ensure: 'present'
bytesmaximum: '20000000000'
messagesmaximum: '9223372036854775807'
policy: 'FIFO'
shared: '0'
###wls_jms_subdeployment
needs wls_setting, title must also contain the jms module name
or use puppet resource wls_jms_subdeployment
wls_jms_subdeployment { 'jmsClusterModule:jmsServers':
ensure => 'present',
target => 'jmsServer1,jmsServer2',
targettype => 'JMSServer,JMSServer',
}
wls_jms_subdeployment { 'jmsClusterModule:wlsServers':
ensure => 'present',
target => 'WebCluster',
targettype => 'Cluster',
}
in hiera
jms_subdeployment_instances:
'jmsClusterModule:jmsServers':
ensure: 'present'
target: 'jmsServer1,jmsServer2'
targettype: 'JMSServer,JMSServer'
'jmsClusterModule:wlsServers':
ensure: 'present'
target: 'WebCluster'
targettype: 'Cluster'
###orawls::wlstexec execute any WLST script you want
- 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
See the vagrant boxes for all the working examples
###orawls::utils::wlstbulk execute any WLST script you want( bulk mode )
orawls::utils::wlstbulk is disabled by default so you can also use this in puppet Enterprise > 3.0
requirements
- needs puppet version >= 3.4 ( 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
See the vagrant boxes for all the working examples