manifests/utils/oimconfig.pp
# == Define: orawls::utils::oimconfig
#
# does all the Oracle Identity Management configuration
#
define orawls::utils::oimconfig(
$version = undef,
$oim_home = undef,
$server_config = false,
$oim_password = undef,
$remote_config = false,
$keystore_password = undef,
$design_config = false,
$oimserver_hostname = undef,
$oimserver_port = 14000,
$soaserver_name = 'soa_server1',
$oimserver_name = 'oim_server1',
$bi_enabled = false, # only when you got a BI cluster
$bi_cluster_name = undef,
$repository_database_url = hiera('repository_database_url' , undef), #jdbc:oracle:thin:@192.168.50.5:1521:XE
$repository_prefix = hiera('repository_prefix' , 'DEV'),
$repository_password = hiera('repository_password' , 'Welcome01'),
$jdk_home_dir = hiera('wls_jdk_home_dir'), # /usr/java/jdk1.7.0_45
$weblogic_home_dir = hiera('wls_weblogic_home_dir'), # /opt/oracle/middleware11gR1/wlserver_103
$middleware_home_dir = hiera('wls_middleware_home_dir'), # /opt/oracle/middleware11gR1
$wls_domains_dir = hiera('wls_domains_dir' , undef),
$domain_name = hiera('domain_name'),
$adminserver_name = hiera('domain_adminserver' , 'AdminServer'),
$adminserver_address = hiera('domain_adminserver_address', 'localhost'),
$adminserver_port = hiera('domain_adminserver_port' , 7001),
$nodemanager_port = hiera('domain_nodemanager_port' , 5556),
$weblogic_user = hiera('wls_weblogic_user' , 'weblogic'),
$weblogic_password = hiera('domain_wls_password'),
$os_user = hiera('wls_os_user'), # oracle
$os_group = hiera('wls_os_group'), # dba
$download_dir = hiera('wls_download_dir'), # /data/install
$log_output = false, # true|false
) {
if ( $wls_domains_dir == undef or $wls_domains_dir == '') {
$domains_dir = "${middleware_home_dir}/user_projects/domains"
} else {
$domains_dir = $wls_domains_dir
}
$domain_dir = "${domains_dir}/${domain_name}"
$execPath = "${jdk_home_dir}/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:"
if ( $remote_config == true ) {
file { "${download_dir}/${title}config_oim_remote.rsp":
ensure => present,
content => template('orawls/oim/oim_remote.rsp.erb'),
mode => '0775',
owner => $os_user,
group => $os_group,
backup => false,
}
exec { "config oim remote ${title}":
command => "${oim_home}/bin/config.sh -silent -response ${download_dir}/${title}config_oim_remote.rsp -waitforcompletion",
timeout => 0,
onlyif => "${remote_config} == true",
require => File["${download_dir}/${title}config_oim_remote.rsp"],
path => $execPath,
user => $os_user,
group => $os_group,
logoutput => true,
}
}
if ( $design_config == true ) {
file { "${download_dir}/${title}config_oim_design.rsp":
ensure => present,
content => template('orawls/oim/oim_design.rsp.erb'),
mode => '0775',
owner => $os_user,
group => $os_group,
backup => false,
}
exec { "config oim design ${title}":
command => "${oim_home}/bin/config.sh -silent -response ${download_dir}/${title}config_oim_design.rsp -waitforcompletion",
timeout => 0,
require => File["${download_dir}/${title}config_oim_design.rsp"],
path => $execPath,
user => $os_user,
group => $os_group,
logoutput => true,
}
}
if ( $server_config ) {
##if these params are empty always continue
if $domain_dir != undef {
# check if oim is already configured in this weblogic domain
$oimValue = oim_configured( $domain_dir )
} else {
fail('domain parameters are empty ')
}
#$oimValue = false
if ( $oimValue == false ) {
file { "${download_dir}/${title}config_oim_server.rsp":
ensure => present,
content => template('orawls/oim/oim_server.rsp.erb'),
mode => '0775',
owner => $os_user,
group => $os_group,
backup => false,
}
exec { "config oim server ${title}":
command => "/bin/sh -c 'unset DISPLAY;${oim_home}/bin/config.sh -silent -response ${download_dir}/${title}config_oim_server.rsp -waitforcompletion -debug -logLevel fine'",
timeout => 0,
require => File["${download_dir}/${title}config_oim_server.rsp"],
path => $execPath,
user => $os_user,
group => $os_group,
logoutput => true,
}
if( $bi_enabled == true ) {
# the py script used by the wlst
file { "${download_dir}/bi-createUDD${title}.py":
ensure => present,
content => template('orawls/wlst/wlstexec/fmw/bi-createUDD.py.erb'),
backup => false,
replace => true,
mode => '0775',
owner => $os_user,
group => $os_group,
}
case $::kernel {
'Linux': {
$java_statement = 'java'
}
'SunOS': {
$java_statement = 'java -d64'
}
default: {
fail("Unrecognized operating system ${::kernel}")
}
}
$javaCommand = "${java_statement} -Dweblogic.security.SSL.ignoreHostnameVerification=true weblogic.WLST -skipWLSModuleScanning "
# execute WLST script
exec { "execwlst bi-createUDD.py ${title}":
command => "${javaCommand} ${download_dir}/bi-createUDD${title}.py ${weblogic_password}",
environment => ["CLASSPATH=${weblogic_home_dir}/server/lib/weblogic.jar",
"JAVA_HOME=${jdk_home_dir}"],
path => $execPath,
user => $os_user,
group => $os_group,
logoutput => $log_output,
require => [File["${download_dir}/bi-createUDD${title}.py"],
Exec["config oim server ${title}"]],
before => Orawls::Control['stopOIMOimServer1AfterConfig']
}
}
orawls::control{'stopOIMOimServer1AfterConfig':
weblogic_home_dir => $weblogic_home_dir,
jdk_home_dir => $jdk_home_dir,
wls_domains_dir => $domains_dir,
domain_name => $domain_name,
server_type => 'managed',
target => 'Server',
server => $oimserver_name,
adminserver_address => $adminserver_address,
adminserver_port => $adminserver_port,
nodemanager_port => $nodemanager_port,
action => 'stop',
weblogic_user => $weblogic_user,
weblogic_password => $weblogic_password,
os_user => $os_user,
os_group => $os_group,
download_dir => $download_dir,
log_output => $log_output,
require => Exec["config oim server ${title}"],
}
orawls::control{'stopOIMSoaServer1AfterConfig':
weblogic_home_dir => $weblogic_home_dir,
jdk_home_dir => $jdk_home_dir,
wls_domains_dir => $domains_dir,
domain_name => $domain_name,
server_type => 'managed',
target => 'Server',
server => $soaserver_name,
adminserver_address => $adminserver_address,
adminserver_port => $adminserver_port,
nodemanager_port => $nodemanager_port,
action => 'stop',
weblogic_user => $weblogic_user,
weblogic_password => $weblogic_password,
os_user => $os_user,
os_group => $os_group,
download_dir => $download_dir,
log_output => $log_output,
require => [Orawls::Control['stopOIMOimServer1AfterConfig'],
Exec["config oim server ${title}"],],
}
orawls::control{'stopOIMAdminServerAfterConfig':
weblogic_home_dir => $weblogic_home_dir,
jdk_home_dir => $jdk_home_dir,
wls_domains_dir => $domains_dir,
domain_name => $domain_name,
server_type => 'admin',
target => 'Server',
server => $adminserver_name,
adminserver_address => $adminserver_address,
adminserver_port => $adminserver_port,
nodemanager_port => $nodemanager_port,
action => 'stop',
weblogic_user => $weblogic_user,
weblogic_password => $weblogic_password,
os_user => $os_user,
os_group => $os_group,
download_dir => $download_dir,
log_output => $log_output,
require => [Orawls::Control['stopOIMOimServer1AfterConfig'],
Orawls::Control['stopOIMSoaServer1AfterConfig'],
Exec["config oim server ${title}"],],
}
orawls::control{'startOIMAdminServerAfterConfig':
weblogic_home_dir => $weblogic_home_dir,
jdk_home_dir => $jdk_home_dir,
wls_domains_dir => $domains_dir,
domain_name => $domain_name,
server_type => 'admin',
target => 'Server',
server => $adminserver_name,
adminserver_address => $adminserver_address,
adminserver_port => $adminserver_port,
nodemanager_port => $nodemanager_port,
action => 'start',
weblogic_user => $weblogic_user,
weblogic_password => $weblogic_password,
os_user => $os_user,
os_group => $os_group,
download_dir => $download_dir,
log_output => $log_output,
require => [Orawls::Control['stopOIMOimServer1AfterConfig'],
Orawls::Control['stopOIMAdminServerAfterConfig'],
Orawls::Control['stopOIMSoaServer1AfterConfig'],
Exec["config oim server ${title}"],],
}
}
}
}