Forge Home

howalarming

Installs and configures HowAlarming daemons

7,740 downloads

7,740 latest version

1.9 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.0 (latest)
released Feb 5th 2016

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'jethrocarr-howalarming', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add jethrocarr-howalarming
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install jethrocarr-howalarming --version 0.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

jethrocarr/howalarming — version 0.1.0 Feb 5th 2016

puppet-howalarming

Installs and configures the daemons behind HowAlarming including the init configuration to ensure daemons launch & recover as required.

To learn more about HowAlarming, refer to: https://github.com/jethrocarr/howalarming

What it does

  • Installs the HowAlarming programs from the upstream git repository.
  • Installs init configuration (TODO: which ones?)
  • Configures howalarming and reloads services as required.

Configuration

As HowAlarming is made up of multiple individual programs (mmm unix style) the exact set that you want to run will depend on your environment. Hence, you need to define the list when you invoke the class.

class { '::howalarming':
    apps => ['envisalinkd', 'alert_email']
}

The class will setup the beanstalk queue and each of the specified applications will be configured in the init system.

To generate config.yaml, self-generate data is merged with data in Hiera to generate a complete configuration. This works by defining values in Hiera based on the class name (howalarming) and the application name, as per the following:

howalarming::app_config:
  APPLICATION:
    key: value

Here's how the config.example.yaml would look, expressed in Hiera with this Puppet module:

howalarming::app_config:
  envisalinkd:
    host: 192.168.1.1
    port: 4025
    password: durp12
    code_master: 1234
    code_installer: 5555
    zones:
      '001': Study PIR
      '002': Dungeon PIR
      '003': Bedroom PIR
      '004': Bomb Shelter PIR
      '005': Fire Alarm
      '006': Tamper Switches
  
  alert_email:
    smtp_host: localhost
    smtp_port: 25
    addr_from: alarm@example.com
    addr_to: heythatsmytv@example.com
    # You will want to be selective with triggers, recommend leaving these defaults alone.
    triggers:
     - alarm
     - recovery
     - fault
     - armed
     - disarmed

This differs from some modules like Puppetlab's Apache module which define every possible option as a parameter, but make for massive amounts of boilerplate. This module assumes you're smart enough to be able to structure some YAML data. :-)

You don't need to define the beanstlakd configuration or the tubes that should be present, that is handled by the Puppet module for you. Almost all the other defaults like app installation location, ports, git repo, etc should be left as-is, but if needed refer to manifests/params.pp for information on how to override the defaults.

Requirements

This module requires the following dependencies:

It is tested/supported on the following platforms:

  • CentOS 7

Note that this module only supports the following initsystems currently:

  • systemd

Debugging

If any of the HowAlarming apps are failing, have a look at their log output with:

journalctl -f -u howalarming-APPNAME

Where APPNAME is either "beanstalk" (for the queue status) or any of the apps defined when you invoked the Puppet class.

Contributions

All contributions are welcome via Pull Requests including documentation fixes or compatibility fixes for supporting other distributions (or other operating systems).

License

This module is licensed under the Apache License, Version 2.0 (the "License"). See the LICENSE.txt or http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.