Puppet Class: nuodb

Inherits:
::nuodb::params
Inherited by:
nuodb::config
nuodb::install
nuodb::service
Defined in:
manifests/init.pp

Overview

Class: nuodb

Installs, configures and manages NuoDB service.

Examples:

include ::nuodb # Use hiera to set parameters such as the 'domainPassword' in config_overrides
class { '::nuodb' :
  config_overrides     => {
    domainPassword => 'mySuperSecretPassword',
  },
}

Parameters:

  • manage_package (Any) (defaults to: $::nuodb::params::manage_package)

    Boolean specifying whether or not to manage the package. Defaults to true.

  • package_ensure (Any) (defaults to: $::nuodb::params::package_ensure)

    the ensure value to be set for the package resource when installing the package. Defaults to installed.

  • package_version (Any) (defaults to: $::nuodb::params::package_version)

    version of the package to install.

  • package_download_url (Any) (defaults to: $::nuodb::params::package_download_url)

    location to download the package from.

  • package_alt_source (Any) (defaults to: undef)

    alternative location to get the package from. Will disregard the package_download_url if this is set.

  • package_alt_name (Any) (defaults to: undef)

    alternative package file name if the file names doesn’t follow the standard distribution naming.

  • package_provider (Any) (defaults to: $::nuodb::params::package_provider)

    provider to use when installing the package. Defaults to rpm on RedHat OS family and dpkg on Debian OS family.

  • manage_java (Any) (defaults to: $::nuodb::params::manage_java)

    Boolean specifying whether or not to manage install Java. Defaults to true.

  • manage_thp (Any) (defaults to: $::nuodb::params::manage_thp)

    Boolean specifying whether or not to manage Transparent Hugepages (THP). Defaults to true.

  • manage_wget (Any) (defaults to: $::nuodb::params::manage_wget)

    Boolean specifying whether or not to manage wget. Defaults to true.

  • config_overrides (Any) (defaults to: $::nuodb::params::config_overrides)

    Hash of properties to set in default.properties file, which will override any properties set via config_defaults parameter. It is recommended to set the domainPassword parameter either in overrides or defaults.

  • config_defaults (Any) (defaults to: $::nuodb::params::config_defaults)

    Hash of properties to set in default.properties by default unless overridden by config_overrides parameter. Uses sensible defaults. It is mandatory to set the domainPassword parameter either in overrides or defaults.

  • agent_service_ensure (Any) (defaults to: $::nuodb::params::agent_service_ensure)

    the ensure value to set for the service resource for the agent service. Defaults to running.

  • agent_service_enable (Any) (defaults to: $::nuodb::params::agent_service_enable)

    Boolean enable parameter for the service resource to manage the agent service. Defaults to true.

  • rest_service_ensure (Any) (defaults to: $::nuodb::params::rest_service_ensure)

    the ensure value to set for the service resource for the REST service. Defaults to running.

  • rest_service_enable (Any) (defaults to: $::nuodb::params::rest_service_enable)

    Boolean enable parameter for the service resource to manage the REST service. Defaults to true.

  • engine_service_ensure (Any) (defaults to: $::nuodb::params::engine_service_ensure)

    the ensure value to set for the service resource for the engine service. Defaults to running.

  • engine_service_enable (Any) (defaults to: $::nuodb::params::engine_service_enable)

    Boolean enable parameter for the service resource to manage the engine service. Defaults to true.

  • webconsole_service_ensure (Any) (defaults to: $::nuodb::params::webconsole_service_ensure)

    the ensure value to set for the service resource for the web console service. Defaults to running.

  • webconsole_service_enable (Any) (defaults to: $::nuodb::params::webconsole_service_enable)

    Boolean enable parameter for the service resource to manage the web console service. Defaults to true.

  • domain_administrators (Any) (defaults to: {})
  • databases (Any) (defaults to: {})


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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'manifests/init.pp', line 38

class nuodb (
  $manage_package            = $::nuodb::params::manage_package,
  $package_ensure            = $::nuodb::params::package_ensure,
  $package_version           = $::nuodb::params::package_version,
  $package_download_url      = $::nuodb::params::package_download_url,
  $package_alt_source        = undef,
  $package_alt_name          = undef,
  $package_provider          = $::nuodb::params::package_provider,
  $manage_java               = $::nuodb::params::manage_java,
  $manage_thp                = $::nuodb::params::manage_thp,
  $manage_wget               = $::nuodb::params::manage_wget,
  $config_overrides          = $::nuodb::params::config_overrides,
  $config_defaults           = $::nuodb::params::config_defaults,
  $agent_service_ensure      = $::nuodb::params::agent_service_ensure,
  $agent_service_enable      = $::nuodb::params::agent_service_enable,
  $rest_service_ensure       = $::nuodb::params::rest_service_ensure,
  $rest_service_enable       = $::nuodb::params::rest_service_enable,
  $engine_service_ensure     = $::nuodb::params::engine_service_ensure,
  $engine_service_enable     = $::nuodb::params::engine_service_enable,
  $webconsole_service_ensure = $::nuodb::params::webconsole_service_ensure,
  $webconsole_service_enable = $::nuodb::params::webconsole_service_enable,
  $domain_administrators     = {},
  $databases                 = {},
) inherits ::nuodb::params {

  # Merge defaults and overrides
  $default_properties = merge($config_defaults, $config_overrides)

  validate_bool($manage_package)
  validate_bool($manage_java)
  validate_bool($manage_wget)
  validate_string($config_overrides['domainPassword'], 'domainPassword must be set')

  # Use puppetlabs-java module to install Java
  if ($manage_java) {
    include '::java'

    # Java should be installed for nuodb installtion
    Class['::java'] -> Package['nuodb']
  }

  # Use alexharvey-disable_transparent_hugepage module to disable THP
  if ($manage_thp) {
    include '::disable_transparent_hugepage'

    # Should be done before agent start
    Class['::disable_transparent_hugepage'] -> Service['nuoagent']
  }

  # Anchors
  anchor { '::nuodb::begin': }
  anchor { '::nuodb::end': }

  # Install
  include '::nuodb::install'
  include '::nuodb::config'
  include '::nuodb::service'

  # Ordering
  Anchor['::nuodb::begin']
  -> Class['::nuodb::install']
  -> Class['::nuodb::config']
  ~> Class['::nuodb::service']
  -> Anchor['::nuodb::end']

  # Resources
  create_resources('nuodb::manager::domain_administrator', $domain_administrators)
  create_resources('nuodb::manager::database', $databases)
}