# test # # one machine setup with weblogic 12.1.2 # creates an WLS Domain with JAX-WS (advanced, soap over jms) # needs jdk7, orawls, orautils, fiddyspence-sysctl, erwbgy-limits puppet modules # node 'node1.example.com', 'node2.example.com' { include os,java, ssh, orautils include wls1036 include maintenance include copydomain Class['os'] -> Class['ssh'] -> Class['java'] -> Class['wls1036'] -> Class['copydomain'] } # operating settings for Middleware class os { notice "class os ${operatingsystem}" $default_params = {} $host_instances = hiera('hosts', []) create_resources('host',$host_instances, $default_params) exec { "create swap file": command => "/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=8192", creates => "/var/swap.1", } exec { "attach swap file": command => "/sbin/mkswap /var/swap.1 && /sbin/swapon /var/swap.1", require => Exec["create swap file"], unless => "/sbin/swapon -s | grep /var/swap.1", } #add swap file entry to fstab exec {"add swapfile entry to fstab": command => "/bin/echo >>/etc/fstab /var/swap.1 swap swap defaults 0 0", require => Exec["attach swap file"], user => root, unless => "/bin/grep '^/var/swap.1' /etc/fstab 2>/dev/null", } service { iptables: enable => false, ensure => false, hasstatus => true, } group { 'dba' : ensure => present, } # http://raftaman.net/?p=1311 for generating password # password = oracle user { 'wls' : ensure => present, groups => 'dba', shell => '/bin/bash', password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.', home => "/home/wls", comment => 'wls user created by Puppet', managehome => true, require => Group['dba'], } $install = [ 'binutils.x86_64','unzip.x86_64'] package { $install: ensure => present, } class { 'limits': config => { '*' => { 'nofile' => { soft => '2048' , hard => '8192', },}, 'wls' => { 'nofile' => { soft => '65536' , hard => '65536', }, 'nproc' => { soft => '2048' , hard => '16384', }, 'memlock' => { soft => '1048576', hard => '1048576',}, 'stack' => { soft => '10240' ,},}, }, use_hiera => false, } 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 => '2588483584',} sysctl { 'kernel.shmall': ensure => 'present', permanent => 'yes', value => '2097152',} sysctl { 'fs.file-max': ensure => 'present', permanent => 'yes', value => '6815744',} 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',} sysctl { 'kernel.shmmni': ensure => 'present', permanent => 'yes', value => '4096', } sysctl { 'fs.aio-max-nr': ensure => 'present', permanent => 'yes', value => '1048576',} sysctl { 'kernel.sem': ensure => 'present', permanent => 'yes', value => '250 32000 100 128',} sysctl { 'net.ipv4.ip_local_port_range': ensure => 'present', permanent => 'yes', value => '9000 65500',} sysctl { 'net.core.rmem_default': ensure => 'present', permanent => 'yes', value => '262144',} sysctl { 'net.core.rmem_max': ensure => 'present', permanent => 'yes', value => '4194304', } sysctl { 'net.core.wmem_default': ensure => 'present', permanent => 'yes', value => '262144',} sysctl { 'net.core.wmem_max': ensure => 'present', permanent => 'yes', value => '1048576',} } class ssh { require os notice 'class ssh' file { "/home/wls/.ssh/": owner => "wls", group => "dba", mode => "700", ensure => "directory", alias => "wls-ssh-dir", } file { "/home/wls/.ssh/id_rsa.pub": ensure => present, owner => "wls", group => "dba", mode => "644", source => "/vagrant/ssh/id_rsa.pub", require => File["wls-ssh-dir"], } file { "/home/wls/.ssh/id_rsa": ensure => present, owner => "wls", group => "dba", mode => "600", source => "/vagrant/ssh/id_rsa", require => File["wls-ssh-dir"], } file { "/home/wls/.ssh/authorized_keys": ensure => present, owner => "wls", group => "dba", mode => "644", source => "/vagrant/ssh/id_rsa.pub", require => File["wls-ssh-dir"], } } class java { require os notice 'class java' $remove = [ "java-1.7.0-openjdk.x86_64", "java-1.6.0-openjdk.x86_64" ] package { $remove: ensure => absent, } include jdk7 jdk7::install7{ 'jdk1.7.0_181': version => "7u181" , fullVersion => "jdk1.7.0_181", alternativesPriority => 18000, x64 => true, downloadDir => hiera('wls_download_dir'), urandomJavaFix => true, sourcePath => hiera('wls_source'), } } class wls1036{ class { 'wls::urandomfix' :} $jdkWls11gJDK = hiera('wls_jdk_version') $wls11gVersion = hiera('wls_version') $puppetDownloadMntPoint = hiera('wls_source') $osOracleHome = hiera('wls_oracle_base_home_dir') $osMdwHome = hiera('wls_middleware_home_dir') $osWlHome = hiera('wls_weblogic_home_dir') $user = hiera('wls_os_user') $group = hiera('wls_os_group') $downloadDir = hiera('wls_download_dir') $logDir = hiera('wls_log_dir') # set the defaults Wls::Installwls { version => $wls11gVersion, fullJDKName => $jdkWls11gJDK, oracleHome => $osOracleHome, mdwHome => $osMdwHome, user => $user, group => $group, downloadDir => $downloadDir, remoteFile => hiera('wls_remote_file'), puppetDownloadMntPoint => $puppetDownloadMntPoint, } Wls::Nodemanager { wlHome => $osWlHome, fullJDKName => $jdkWls11gJDK, user => $user, group => $group, serviceName => $serviceName, downloadDir => $downloadDir, } Wls::Bsupatch { mdwHome => $osMdwHome, wlHome => $osWlHome, fullJDKName => $jdkWls11gJDK, user => $user, group => $group, downloadDir => $downloadDir, puppetDownloadMntPoint => $puppetDownloadMntPoint, } # install wls::installwls{'11gPS5': createUser => false, } # weblogic patch ##wls::bsupatch{'p17071663': ## patchId => 'BYJ1', ## patchFile => 'p17071663_1036_Generic.zip', ## require => Wls::Installwls['11gPS5'], ##} #nodemanager configuration and starting wls::nodemanager{'nodemanager11g': listenPort => hiera('domain_nodemanager_port'), listenAddress => hiera('domain_node_address'), logDir => $logDir, ## require => Wls::Bsupatch['p17071663'], } orautils::nodemanagerautostart{"autostart ${wlsDomainName}": version => "1111", wlHome => $osWlHome, user => $user, logDir => $logDir, require => Wls::Nodemanager['nodemanager11g']; } } class copydomain { $wlsDomainName = hiera('domain_name') $adminListenPort = hiera('domain_adminserver_port') $nodemanagerPort = hiera('domain_nodemanager_port') $address = hiera('domain_adminserver_address') $userConfigDir = hiera('wls_user_config_dir') $jdkWls11gJDK = hiera('wls_jdk_version') $osOracleHome = hiera('wls_oracle_base_home_dir') $osMdwHome = hiera('wls_middleware_home_dir') $osWlHome = hiera('wls_weblogic_home_dir') $user = hiera('wls_os_user') $group = hiera('wls_os_group') $downloadDir = hiera('wls_download_dir') $logDir = hiera('wls_log_dir') # install domain wls::copydomain{'copyWlsDomain': version => '1111', wlHome => $osWlHome, mdwHome => $osMdwHome, fullJDKName => $jdkWls11gJDK, domain => $wlsDomainName, adminListenAdr => $address, adminListenPort => $adminListenPort, sshpass => false, wlsUser => hiera('wls_weblogic_user'), password => hiera('domain_wls_password'), user => $user, userPassword => 'oracle', group => $group, logDir => $logDir, downloadDir => $downloadDir, } } class maintenance { $osOracleHome = hiera('wls_oracle_base_home_dir') $osMdwHome = hiera('wls_middleware_home_dir') $osWlHome = hiera('wls_weblogic_home_dir') $user = hiera('wls_os_user') $group = hiera('wls_os_group') $downloadDir = hiera('wls_download_dir') $logDir = hiera('wls_log_dir') $mtimeParam = "1" cron { 'cleanwlstmp' : command => "find /tmp -name '*.tmp' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/tmp_purge.log 2>&1", user => $user, hour => 06, minute => 25, } cron { 'mdwlogs' : command => "find ${osMdwHome}/logs -name 'wlst_*.*' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/wlst_purge.log 2>&1", user => $user, hour => 06, minute => 30, } }