FENCE_AGENT(8)

πŸ“¦
version 4.17.0 Β· 3 versions
, in debian trixie, fedora 43, fedora 44, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– FENCE_AGENT(8) β€” the manual, but make it make sense πŸ’–

System Manager's Manual ✨ this is the page for fence_compute and bestie, we're gonna get through it together, no cap 🫢


🌸 NAME 🌸

fence_compute β€” the fence agent for the automatic resurrection of OpenStack compute instances πŸ§Ÿβ€β™€οΈβœ¨ like, it literally brings things back from the dead, it's giving necromancy but make it infrastructure πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

So what does this thing actually do? It tells Nova that compute nodes are down, and then it reschedules the instances that got flagged. Periodt. That's the whole vibe.

Okay and here's the tea β˜• β€” this fence agent takes options from the command line and from stdin. When fenced execs the agent, it sends parameters through stdin. But you can also just run the agent all by itself with command line options, which is lowkey so useful for testing and for turning outlets on or off from scripts. Iconic behavior honestly.

Vendor URL: (it's empty in the original, bestie β€” nothing there) πŸ™ˆ


✨ PARAMETERS ✨

Okay buckle up, here comes the whole list. Every single one. I'm not skipping a thing πŸ’–

  • -o, --action=[action] β€” the fencing action. (Default Value: off)
  • -k, --auth-url=[url] β€” Keystone Admin Auth URL. (Default Value: β€” yes, empty)
  • -e, --endpoint-type=[endpoint] β€” Nova Endpoint type. (Default Value: internalURL)
  • -p, --password=[password] β€” login password or passphrase.
  • -S, --password-script=[script] β€” script to run to retrieve the password.
  • -n, --plug=[id] β€” physical plug number on the device, UUID, or identification of the machine. 🚨 This parameter is always required. No plug, no party.
  • --region-name=[region] β€” Region Name. (Default Value: β€” empty again)
  • -t, --tenant-name=[name] β€” Keystone Admin Tenant or v3 Project. (Default Value: )
  • -l, --username=[name] β€” login name.
  • --insecure β€” allow Insecure TLS Requests. 😬 (says it right there, bestie, it's insecure)
  • -P, --project-domain=[name] β€” Keystone v3 Project Domain. (Default Value: Default)
  • -u, --user-domain=[name] β€” Keystone v3 User Domain. (Default Value: Default)
  • -d, --domain=[string] β€” the DNS domain in which hosts live.
  • --instance-filtering β€” allow instances to be evacuated. (Default Value: True)
  • --no-shared-storage β€” disable functionality for dealing with shared storage. (Default Value: False)
  • --record-only β€” only record the target as needing evacuation. (Default Value: False)
  • --compute-domain=[string] β€” replaced by domain. (it's deprecated, babe, use the new one πŸ’€)
  • -q, --quiet β€” disable logging to stderr. Does not affect --verbose, --debug-file, or logging to syslog. Read that again, it matters.
  • -v, --verbose β€” verbose mode. You can stack multiple -v flags on the command line (e.g., -vvv) to increase verbosity. The more v's the more you see πŸ‘€
  • --verbose-level β€” level of debugging detail in output. Defaults to the number of --verbose flags specified on the command line, or to 1 if verbose=1 in a stonith device configuration (i.e., on stdin).
  • -D, --debug-file=[debugfile] β€” write debug information to the given file.
  • -V, --version β€” display version information and exit.
  • -h, --help β€” display help and exit.
  • --plug-separator=[char] β€” separator for the plug parameter when you're specifying more than 1 plug. (Default Value: ,)
  • -C, --separator=[char] β€” separator for the CSV created by the list operation. (Default Value: ,)
  • --delay=[seconds] β€” wait X seconds before fencing is started. (Default Value: 0)
  • --disable-timeout=[true/false] β€” disable timeout (true/false). (default: true when run from Pacemaker 2.0+)
  • --login-timeout=[seconds] β€” wait X seconds for cmd prompt after login. (Default Value: 5)
  • --power-timeout=[seconds] β€” test X seconds for status change after ON/OFF. (Default Value: 20)
  • --power-wait=[seconds] β€” wait X seconds after issuing ON/OFF. (Default Value: 0)
  • --shell-timeout=[seconds] β€” wait X seconds for cmd prompt after issuing a command. (Default Value: 180)
  • --stonith-status-sleep=[seconds] β€” sleep X seconds between status calls during a STONITH action. (Default Value: 1)
  • --retry-on=[attempts] β€” count of attempts to retry power on. (Default Value: 1)

πŸŽ€ ACTIONS πŸŽ€

The things this agent can actually do when you ask it to:

  • on β€” power on machine. ⚑
  • off β€” power off machine. πŸ’€
  • status β€” this returns the status of the plug/virtual machine.
  • list β€” list available plugs with aliases/virtual machines if there's support for more than one device. Returns N/A otherwise.
  • list-status β€” list available plugs with aliases/virtual machines and their power state, if it can be obtained without additional commands.
  • monitor β€” check the health of the fence device. 🩺
  • metadata β€” display the XML metadata describing this resource.
  • manpage β€” the operational behavior of this is not known. 😭 no fr, that's literally what it says, bestie, nobody knows.
  • validate-all β€” validate if all required parameters are entered.

🌈 STDIN PARAMETERS 🌈

Same energy, different delivery system β€” these are the ones that come in through stdin:

  • action β€” fencing action. (Default Value: off)
  • auth_url β€” Keystone Admin Auth URL. (Default Value: )
  • endpoint_type β€” Nova Endpoint type. (Default Value: internalURL)
  • password β€” login password or passphrase. Obsoletes: passwd
  • password_script β€” script to run to retrieve password. Obsoletes: passwd_script
  • plug β€” physical plug number on device, UUID or identification of machine. 🚨 This parameter is always required. Obsoletes: port
  • region_name β€” Region Name. (Default Value: )
  • tenant_name β€” Keystone Admin Tenant or v3 Project. (Default Value: )
  • username β€” login name. Obsoletes: login
  • insecure β€” allow Insecure TLS Requests.
  • project_domain β€” Keystone v3 Project Domain. (Default Value: Default) Obsoletes: project-domain
  • user_domain β€” Keystone v3 User Domain. (Default Value: Default) Obsoletes: user-domain
  • domain β€” DNS domain in which hosts live.
  • instance_filtering β€” allow instances to be evacuated. (Default Value: True)
  • no_shared_storage β€” disable functionality for dealing with shared storage. (Default Value: False)
  • record_only β€” only record the target as needing evacuation. (Default Value: False)
  • compute_domain β€” replaced by domain. Obsoletes: compute-domain
  • quiet β€” disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.
  • verbose β€” verbose mode. Multiple -v flags can be stacked on the command line (e.g., -vvv) to increase verbosity.
  • verbose_level β€” level of debugging detail in output. Defaults to the number of --verbose flags specified on the command line, or to 1 if verbose=1 in a stonith device configuration (i.e., on stdin).
  • debug_file β€” write debug information to given file. Obsoletes: debug
  • version β€” display version information and exit.
  • help β€” display help and exit.
  • plug_separator β€” separator for plug parameter when specifying more than 1 plug. (Default Value: ,)
  • separator β€” separator for CSV created by list operation. (Default Value: ,)
  • delay β€” wait X seconds before fencing is started. (Default Value: 0)
  • disable_timeout β€” disable timeout (true/false). (default: true when run from Pacemaker 2.0+)
  • login_timeout β€” wait X seconds for cmd prompt after login. (Default Value: 5)
  • power_timeout β€” test X seconds for status change after ON/OFF. (Default Value: 20)
  • power_wait β€” wait X seconds after issuing ON/OFF. (Default Value: 0)
  • shell_timeout β€” wait X seconds for cmd prompt after issuing command. (Default Value: 180)
  • stonith_status_sleep β€” sleep X seconds between status calls during a STONITH action. (Default Value: 1)
  • retry_on β€” count of attempts to retry power on. (Default Value: 1)

Reminder bestie: --compute-domain / compute_domain is replaced by domain β€” it's old news, don't build anything new on it πŸ’€

And that's the whole page!! 🫢 Written under fence_compute (Fence Agent), dated 2009-10-20, and filed as FENCE_AGENT(8). Slay, go fence something responsibly πŸ’…βœ¨πŸŒΈ

πŸ“¦ where this page comes from