powerman.conf(5)

πŸ“¦
version 2.4.4 Β· 3 versions
, in debian trixie, epel 10, epel 9, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ powerman.conf β€” the manual page, bestie edition ✨

okay so you're looking at the powerman.conf man page, which lives in the File Formats Manual section (5) of the manual. she's a config file for PowerMan and she's lowkey the main character of your whole power-control setup. let's get into it πŸ’…


πŸŽ€ NAME πŸŽ€

powerman.conf β€” the configuration file for PowerMan. that's it, that's the name, iconic behavior.


πŸ¦‹ DESCRIPTION πŸ¦‹

so like, the powerman.conf file typically includes one or more of the remote power controller (RPC) device files that ship in the /etc/powerman directory. it also sets a few global options, instantiates RPC devices with unique names + hostnames + ports, and maps node names to RPC's and plug numbers. it's giving project manager energy fr fr.

Network-attached RPC's get instantiated with device lines shaped like this:

device "name" "type" "host:port"

Serial-attached RPC's get instantiated with device lines shaped like this:

device "name" "type" "special file" "flags"

where special file is the full path to a tty device, and flags is a serial parameter specification in a form similar to the one lilo uses, e.g. "9600,8n1". 🫢

and RPC's that you access via coprocesses get instantiated like this:

device "name" "type" "process |&"

where process is the full path to a process whose standard output and input will be controlled by powerman, e.g. "/usr/bin/conman -Q -j rpc0 |&". yes bestie, powerman is literally holding the reins of that process's stdin and stdout. no cap.


🌸 EXAMPLE 🌸

here's the moment you've all been waiting for β€” the following example is a 16-node cluster that uses two 8-plug Baytech RPC-3 remote power controllers. slay.

include "/etc/powerman/baytech.dev"  # include def for "baytech" RPC

tcpwrappers yes                      # enable TCP wrappers

# listen "0.0.0.0:10101"             # uncomment to listen on all interfaces

# plug_log_level "info"              # uncomment to change syslog messages
                                     # for plug state changes to level
                                     # info (default level is debug)

# Alias example - alias can be used in target specifications
alias "pengra_service" "pengra[0-1]"
alias "pengra_compute" "pengra[2-15]"

# Power controller: device <name> <type> <hostname:port> [<flags>]
device "pow0" "baytech" "pow0:23"  # instantiate pow0
device "pow1" "baytech" "pow1:23"  # instantiate pow1

# Plugs: node <name> <device> [<plug>]
node "pengra[0-7]" "pow0" "[1-8]"  # map pengra0...pengra7 to pow0 plug 1-8
node "pengra[8-15]" "pow1" "[1-8]" # map pengra8...pengra15 to pow1 plug 1-8

look at those aliases and bracket ranges. she ate and left no crumbs πŸ’–


πŸ’œ FILES πŸ’œ

  • /etc/powerman/powerman.conf
  • /etc/powerman/*.dev

πŸ‘‘ ORIGIN πŸ‘‘

PowerMan was originally developed by Andrew Uselton on LLNL's Linux clusters. this software is open source and distributed under the terms of the GNU GPL. a legend, honestly. 🌈


πŸ”₯ SEE ALSO πŸ”₯

and if you wanna go touch grass on the internet: http://github.com/chaos/powerman ⭐


ok that's the whole page, you read all of it, I'm so proud of you πŸ₯Ή go configure your RPC's, bestie. periodt. πŸ’…

this has been powerman.conf(5) from powerman-2.4.4, dated 13 January 2012 β€” yes she's an elder but she still slays, mwah πŸŽ€βœ¨