puppet-module-powerman

Table of Contents

  1. Setup - The basics of getting started with powerman

  2. Usage - Configuration options and additional functionality

  3. Reference - Module reference

Setup

What powerman affects

This module will install and configures powerman.

Usage

Install and configure powerman to listen on all interfaces and define devices, nodes and aliases

class { '::powerman':
  listen => '0.0.0.0',
}
powerman::device { 'compute-ipmi':
  driver   => 'ipmipower',
  endpoint => '/usr/sbin/ipmipower -D LAN_2_0 -u admin -p changeme -h bmc-compute[01-04]',
}
powerman::nodes { 'compute[01-04]':
  device => 'compute-ipmi',
  port   => 'bmc-compute[01-04]',
}
powerman::alias { 'compute':
  nodes => 'compute[01-04]',
}

To configure a system as a powerman client:

class { '::powerman':
  server          => false,
  powerman_server => 'powerman.example.com',
}

This is an example of exporting console configurations for all physical servers:

if $facts['virtual'] == 'physical' {
  @@powerman::device { "bmc-${::hostname}-ipmi":
    driver   => 'ipmipower',
    endpoint => "/usr/sbin/ipmipower -D LAN_2_0 -u admin -p changeme -h bmc-${::hostname}-ipmi |&",
  }
  @@powerman::node { $::hostname:
    device => "bmc-${::hostname}-ipmi",
    port   => "bmc-${::hostname}",
  }
}

Then collect all the exported resources:

Powerman::Device <<| |>>
Powerman::Node <<| |>>
Powerman::Alias <<| |>>

Reference

treydock.github.io/puppet-module-powerman/