1
0
mirror of https://github.com/ardichoke/puppet-arpwatch.git synced 2026-05-11 02:15:37 -04:00

Commit v0.1.0

This commit is contained in:
2016-10-18 13:55:40 -04:00
parent 0a7000626c
commit 3d39a0978a
7 changed files with 282 additions and 0 deletions

103
manifests/init.pp Normal file
View File

@@ -0,0 +1,103 @@
# Class: arpwatch
# ===========================
#
# Install and configure arpwatch
#
# Parameters
# ----------
#
# * `config_file`
# The confiugration file on the server to manage.
#
# * `config_template`
# The template to use when generating the config file.
#
# * `dest_email`
# The email address to send arpwatch alerts to.
#
# * `interface`
# Which interface to watch for arp traffic
#
# * `package_ensure`
# Ensure value passed to the package resource
#
# * `package_name`
# Name of the package to manage
#
# * `service_enable`
# Enable value, passed to the service resource
#
# * `service_ensure`
# Ensure value, passed to the service resource
#
# * `service_name`
# Name of the service to manage
#
# * `service_user`
# Defines the user account that arpwatch will run under
#
# * `source_email`
# Define the source email address for arpwatch alerts
#
# Examples
# --------
#
# @example
# class { 'arpwatch':
# dest_email => 'foo@bar.org',
# source_email => 'arpwatch@baz.com',
# }
#
# Authors
# -------
#
# Ryan DeShone <rfdeshon@gmail.com>
#
# Copyright
# ---------
#
# Copyright 2016 Ryan DeShone, unless otherwise noted.
#
class arpwatch (
$config_file = $arpwatch::params::config_file,
$config_template = $arpwatch::params::config_template,
$dest_email = '-',
$interface = $arpwatch::params::interface,
$package_ensure = 'installed',
$package_name = $arpwatch::params::package_name,
$service_enable = true,
$service_ensure = 'running',
$service_name = $arpwatch::params::service_name,
$service_user = $arpwatch::params::service_user,
$source_email = "arpwatch@${::fqdn}",
) inherits arpwatch::params {
validate_string($dest_email)
validate_string($package_name)
validate_string($service_user)
validate_string($service_name)
validate_string($interface)
validate_absolute_path($config_file)
validate_string($package_ensure)
validate_string($source_email)
validate_bool($service_enable)
validate_string($service_ensure)
package {
$package_name:
ensure => $package_ensure,
}
file {
$config_file:
ensure => 'file',
owner => 'root',
group => 'root',
mode => '0644',
content => template($config_template),
}
service {
$service_name:
ensure => $service_ensure,
enable => $service_enable,
}
Package[$package_name]->File[$config_file]~>Service[$service_name]
}