In regard to: Re: [Puppet Users] Puppet & Oracle Database config...:
> Have you got any examples of the hiera config you're using?
As I said, it's pretty rough.
class oracledb::sysctl(
$use_amm = false,
$large_mem_pages = '0',
$hugetlb_gid = '1001',
) {
validate_bool($use_amm)
validate_string($large_mem_pages)
validate_string($hugetlb_gid)
if ( $use_amm and ($large_mem_pages != '0')) {
fail("\$use_amm must be false when \$large_mem_pages is not 0\n")
}
#
# The basic settings that should always be present. Can be overridden
# via hiera().
#
# sem, default is '250 32000 100 128'
sysctl::set{'kernel.sem':
value => hiera('oracle_sysctl_sem', '250 32000 100 128')
}
# shmmni
sysctl::set{'kernel.shmmni':
value => hiera('oracle_sysctl_shmmni', '4096'),
require => Sysctl::Set['kernel.sem'],
}
# file_max
sysctl::set{'fs.file-max':
value => hiera('oracle_sysctl_file_max', '6815744'),
require => Sysctl::Set['kernel.shmmni'],
}
sysctl::set{'fs.aio-max-nr':
value => hiera('oracle_sysclt_aio_max_nr', '1048576'),
require => Sysctl::Set['fs.file-max'],
}
# ip local port range.
sysctl::set{'net.ipv4.ip_local_port_range':
value => hiera('oracle_sysctl_ip_local_port_range', '9000 65500'),
require => Sysctl::Set['fs.aio-max-nr'],
}
# network buffer defaults
sysctl::set{'net.core.rmem_default':
value => hiera('oracle_sysctl_rmem_default', '262144'),
require => Sysctl::Set['net.ipv4.ip_local_port_range'],
}
sysctl::set{'net.core.rmem_max':
value => hiera('oracle_sysctl_rmem_max', '4194304'),
require => Sysctl::Set['net.core.rmem_default'],
}
sysctl::set{'net.core.wmem_default':
value => hiera('oracle_sysctl_wmem_default', '262144'),
require => Sysctl::Set['net.core.rmem_max'],
}
sysctl::set{'net.core.wmem_max':
value => hiera('oracle_sysctl_wmem_max', '1048576'),
require => Sysctl::Set['net.core.wmem_default'],
}
sysctl::set{'vm.swappiness':
value => hiera('oracle_sysctl_swappiness', '0'),
require => Sysctl::Set['net.core.wmem_max'],
}
#
# Only if AMM is false and $large_mem_pages > 0 do we set these
#
if (!$use_amm and ($large_mem_pages > 0)) {
sysctl::set{'vm.nr_hugepages': value => $large_mem_pages }
#1001 is the dba group which the oracle user belongs to
sysctl::set{'vm.hugetlb_shm_group': value => $hugetlb_gid }
}
}
We've talked about having the sysctl class also make certain that
/dev/shm is mounted and of the appropriate size if $use_amm is true, but
that hasn't been done yet.
All of the other setup (limits.conf, paths, user, groups) happens in
oracledb::serverbase, which doesn't use hiera and is more or less specific
to our environment.
Tim