Puppet Class: zabbix::javagateway

Inherits:
zabbix::params
Defined in:
manifests/javagateway.pp

Overview

Class: zabbix::javagateway

This will install and configure the zabbix-agent deamon

Requirements

No requirements.

Parameters

zabbix_version

This is the zabbix version.

zabbix_package_state

The state of the package that needs to be installed: present or latest. Default: present

manage_firewall

When true, it will create iptables rules.

manage_repo

When true, it will create repository for installing the javagateway.

pidfile

Name of pid file.

listenip

List of comma delimited ip addresses that the agent should listen on.

listenport

Agent will listen on this port for connections from the server.

startpollers

Number of worker threads to start.

Example

class { 'zabbix::javagateway':
  zabbix_version => '2.2',
}

Authors

Author Name: ikben@werner-dijkerman.nl

Copyright 2014 Werner Dijkerman

Parameters:

  • zabbix_version (Any) (defaults to: $zabbix::params::zabbix_version)
  • zabbix_package_state (Any) (defaults to: $zabbix::params::zabbix_package_state)
  • manage_firewall (Any) (defaults to: $zabbix::params::manage_firewall)
  • manage_repo (Any) (defaults to: $zabbix::params::manage_repo)
  • pidfile (Any) (defaults to: $zabbix::params::javagateway_pidfile)
  • listenip (Any) (defaults to: $zabbix::params::javagateway_listenip)
  • listenport (Any) (defaults to: $zabbix::params::javagateway_listenport)
  • startpollers (Any) (defaults to: $zabbix::params::javagateway_startpollers)


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
107
108
109
110
111
112
113
114
115
116
117
# File 'manifests/javagateway.pp', line 50

class zabbix::javagateway(
  $zabbix_version       = $zabbix::params::zabbix_version,
  $zabbix_package_state = $zabbix::params::zabbix_package_state,
  $manage_firewall      = $zabbix::params::manage_firewall,
  $manage_repo          = $zabbix::params::manage_repo,
  $pidfile              = $zabbix::params::javagateway_pidfile,
  $listenip             = $zabbix::params::javagateway_listenip,
  $listenport           = $zabbix::params::javagateway_listenport,
  $startpollers         = $zabbix::params::javagateway_startpollers,
) inherits zabbix::params  {

  # Check some if they are boolean
  validate_bool($manage_firewall)
  validate_bool($manage_repo)

  # Only include the repo class if it has not yet been included
  unless defined(Class['Zabbix::Repo']) {
    class { '::zabbix::repo':
      manage_repo    => $manage_repo,
      zabbix_version => $zabbix_version,
    }
  }

  # Installing the package
  package { 'zabbix-java-gateway':
    ensure  => $zabbix_package_state,
    require => Class['zabbix::repo'],
  }

  # Configuring the zabbix-javagateway configuration file
  file { '/etc/zabbix/zabbix_java_gateway.conf':
    ensure  => present,
    owner   => 'zabbix',
    group   => 'zabbix',
    mode    => '0640',
    notify  => Service['zabbix-java-gateway'],
    require => Package['zabbix-java-gateway'],
    replace => true,
    content => template('zabbix/zabbix_java_gateway.conf.erb'),
  }

  # Workaround for: The redhat provider can not handle attribute enable
  # This is only happening when using an redhat family version 5.x.
  if $::osfamily == 'redhat' and $::operatingsystemrelease !~ /^5.*/ {
    Service['zabbix-java-gateway'] { enable     => true }
  }

  # Controlling the 'zabbix-java-gateway' service
  service { 'zabbix-java-gateway':
    ensure     => running,
    hasstatus  => true,
    hasrestart => true,
    require    => [
      Package['zabbix-java-gateway'],
      File['/etc/zabbix/zabbix_java_gateway.conf']
    ],
  }

  # Manage firewall
  if $manage_firewall {
    firewall { '152 zabbix-javagateway':
      dport  => $listenport,
      proto  => 'tcp',
      action => 'accept',
      state  => ['NEW','RELATED', 'ESTABLISHED'],
    }
  }
}