11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'manifests/database.pp', line 11
define hanaexpress::database (
String $version,
String $password,
Integer $systemdb_port,
Integer $tenantdb_port,
Optional[Boolean] $manage_service = undef,
) {
include hanaexpress
$_name = $name ? {
undef => $title,
default => $name
}
$_manage_service = $manage_service ? {
undef => $hanaexpress::manage_service,
default => $manage_service,
}
# Create data path
file {
"${::hanaexpress::hana_data_path}/${_name}":
ensure => 'directory',
owner => 12000,
group => 79
}
# Create password file
file {
"${::hanaexpress::hana_data_path}/${_name}/password.json":
ensure => 'file',
content => @("EOT"/L)
{
"master_password": "${password}"
}
EOT
,
owner => 12000,
group => 79,
mode => '0600'
}
# Start container
-> docker::run {
"hana-${_name}":
hostname => "hana-${_name}",
image => "store/saplabs/hanaexpress:${version}",
ports => [
"${systemdb_port}:39017",
"${tenantdb_port}:39041"
],
volumes => [
"${::hanaexpress::hana_data_path}/${_name}:/hana/mounts"
],
extra_parameters => [
'--ulimit nofile=1048576:1048576',
'--sysctl kernel.shmmax=1073741824',
'--sysctl net.ipv4.ip_local_port_range\x3d40000\x2060999',
'--sysctl kernel.shmmni=524288',
'--sysctl kernel.shmall=8388608',
],
command => '--passwords-url file:///hana/mounts/password.json --agree-to-sap-license',
manage_service => $_manage_service,
}
}
|