Defined Type: hanaexpress::database

Defined in:
manifests/database.pp

Summary

Sets up a container with a SAP HANA database

Overview

Sets up a container with a SAP HANA database

Examples:

hanaexpress::database { 'namevar': }

Parameters:

  • name

    Name of the hana instance (only ASCII-characters and numbers are allowed)

  • version (String)

    Version of the HANA image to use (i.e. 2.00.030.00.20180403.2)

  • password (String)

    Master password. [Step 7](See www.sap.com/developer/tutorials/hxe-ua-install-using-docker.html) for specifics about valid passwords

  • systemdb_port (Integer)

    Port to use for the HANA System database

  • tenantdb_port (Integer)

    Port to use for the HANA default tenant database (HXE)



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
# File 'manifests/database.pp', line 15

define hanaexpress::database(
  String $version,
  String $password,
  Integer $systemdb_port,
  Integer $tenantdb_port
) {

  include hanaexpress

  $_name = pick($name, $title)

  # 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 => to_json({
        "master_password" => $password
      }),
      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=\"40000 60999\"",
        "--sysctl kernel.shmmni=524288",
        "--sysctl kernel.shmall=8388608",
      ],
      command => "--passwords-url file:///hana/mounts/password.json --agree-to-sap-license"
  }

}