Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/voxpupuli/puppet-smokeping

Puppet module to install and configure smokeping. Including target and slave definition
https://github.com/voxpupuli/puppet-smokeping

centos-puppet-module debian-puppet-module hacktoberfest linux-puppet-module puppet redhat-puppet-module ubuntu-puppet-module

Last synced: 3 days ago
JSON representation

Puppet module to install and configure smokeping. Including target and slave definition

Awesome Lists containing this project

README

        

# SmokePing Puppet module

Puppet module to completely manage a SmokePing installation.
Includes managing of Master/Slave or Standalone installation, and the menu hierarchy.

Some background information can be found here: [Puppet module to manage SmokePing](http://tobrunet.ch/2013/02/puppet-module-to-manage-smokeping/)

## Features

- Master/Slave/Standalone SmokePing configuration possible
- Menu hierarchy implemented
- Define Probes and Alert patterns
- Config files managed with templates
- Uses exported resources to configure Slaves on the Master (tag: smokeping-slave)
- Automatically generates a shared secret for Master/Slave configuration (tag: smokeping-slave-secret)

## Supported Platforms

Fully supported:

- Debian, Ubuntu

Standalone only (no master/slave support yet):

- Fedora 22+
- CentOS 7+ (Note: requires third party repository to provide smokeping package).

## Dependencies

- [puppetlabs-concat](https://github.com/puppetlabs/puppet-concat)
- [puppetlabs-stdlib](https://github.com/puppetlabs/puppet-stdlib)
- [puppet-systemd](https://github.com/voxpupuli/puppet-systemd)

## Example

### Standalone SmokePing instance

```puppet
# install a standalone instance on a server with default values (see init.pp for
# parameter documentation
class { 'smokeping':
mode => 'standalone',
}
```

### Master SmokePing instance

```puppet
# install a master instance on a server with default values (see init.pp for
# parameter documentation. You must have a slave, or this will not work!
class { 'smokeping':
mode => 'master',
}
```

### Slave SmokePing instance

```puppet
class { 'smokeping':
mode => 'slave',
slave_name => $facts['hostname'],
master_url => 'http://myserver.tld/smokeping/smokeping.cgi',
slave_location => 'zurich',
}
```

This configures the server as slaves and adds the slave definition automatically to the
master using exported resources.

### Probes

```puppet
Class['smokeping'] {
probes => [
{
name => 'FPing',
binary => '/usr/bin/fping',
},
{
name => 'FPing6',
binary => '/usr/bin/fping6',
},
],
}
```

### Alerts

```puppet
$alerts = [
{
name => 'bigloss',
alert_type => 'loss',
pattern => '==0%,==0%,==0%,==0%,>0%,>0%,>0%',
comment => 'suddenly there is packet loss',
},

{
name => 'startloss',
alert_type => 'loss',
pattern => '==S,>0%,>0%,>0%',
comment => 'loss at startup',
},

{
name => 'noloss',
alert_type => 'loss',
pattern => '>0%,>0%,>0%,==0%,==0%,==0%,==0%',
edgetrigger => true,
comment => 'there was loss and now its reachable again',
},
]
Class['smokeping'] {
alerts => $alerts,
}
```

### Targets

```puppet
# Top Level
smokeping::target { 'World':
menu => 'World',
pagetitle => 'Connection to the World',
alerts => [ 'bigloss', 'noloss' ],
}

smokeping::target { 'GoogleCH':
hierarchy_parent => 'World',
hierarchy_level => 2,
menu => 'google.ch',
pagetitle => 'Google',
}

smokeping::target { 'GoogleCHIPv4':
hierarchy_parent => 'GoogleCH',
hierarchy_level => 3,
menu => 'google.ch IPv4',
host => 'google.ch',
slaves => ['slave1'],
}

smokeping::target { 'GoogleCHIPv6':
hierarchy_parent => 'GoogleCH',
hierarchy_level => 3,
menu => 'google.ch IPv6',
host => 'google.ch',
probe => 'FPing6',
slaves => ['slave1'],
}

smokeping::target { 'GoogleCHCurl':
hierarchy_parent => 'GoogleCH',
hierarchy_level => 3,
menu => 'google.ch Curl',
host => 'google.ch',
probe => 'Curl',
options => {
urlformat => 'http://%host%/',
},
}
```

## License / Author

The module is written by

- Tobias Brunner

Licensed under Apache License, Version 2.0, Copyright 2015 by Tobias Brunner

## Contibutors

See: [Github Contributors](https://github.com/voxpupuli/puppet-smokeping/graphs/contributors)