PACEMAKER(8)

🌸 PACEMAKER(8) 🌸

Okay so bestie, you found a section 8 manual page (that's the sysadmin-y one, iykyk) and it's lowkey the whole Pacemaker cluster resource manager party. Buckle up πŸ’–


✨ NAME ✨

Pacemaker β€” literally part of the Pacemaker cluster resource manager. That's the vibe. That's the whole name section. Slay.


πŸ¦‹ SYNOPSIS πŸ¦‹

crm_diff original_xml operation [options]

That's it, that's the shape of it. original_xml, then an operation, then your [options]. Periodt.


πŸ’… DESCRIPTION πŸ’…

So what does this thing do? It compares two Pacemaker configurations (both in XML format, no cap) and spits out a custom diff-like output for you. Or β€” main character energy β€” it takes an output like that and applies it as a patch. Two whole personalities in one binary. Obsessed. ✨


πŸŽ€ OPTIONS πŸŽ€

🀝 Help Options (the "help me help you" era)

  • -h, --help β€” shows you the help options. classic.
  • --help-all β€” shows all the help options. the full lore drop.
  • --help-output β€” shows the output help. 🫢
  • --help-xml β€” shows the original XML options.
  • --help-operation β€” shows the operation options.
  • --help-additional β€” shows the additional options. yes there's more. there's always more πŸ’€

πŸ“€ Output Options (how you serve it)

  • --output-as=FORMAT β€” pick your output format, bestie. it's one of: text (that's the default, the go-to) or xml.
  • --output-to=DEST β€” name the file where the output goes. or, iconic move, pass "-" and it goes to stdout instead 🌈

πŸ“œ Original XML (where the original lives)

  • -o, --original=FILE β€” the XML is chilling inside the named file. heads up though: currently --original-string overrides this. and in a future release? the last one you specified wins. we love a glow-up πŸ¦‹
  • -O, --original-string=STRING β€” the XML is just handed to you as a supplied string. currently this takes precedence over --original. in a future release, the last one specified will be used. same rule, different day πŸ’œ

πŸ› οΈ Operation (pick your move)

  • -n, --new=FILE β€” compares the original XML to whatever's in the named file. currently --new-string overrides this. in a future release, the last one specified will be used.
  • -N, --new-string=STRING β€” compares the original XML with the contents of the string you supply. currently this takes precedence over --patch and --new. in a future release, the last one specified will be used. okay the "last one wins" thing is coming for all of us fr fr 😭
  • -p, --patch=FILE β€” patches the original XML with the contents of the named file. currently --new-string and (if it was specified later) --new override the input source you put here. in a future release, the last one specified will be used.
Note, and this one matters: even if this input source gets overridden, the input source will still be applied as a patch to the original XML. the vibe check happens regardless πŸ’€

⭐ OPTIONS ⭐ (the sequel)

🧚 Additional Options

  • -c, --cib β€” compares/patches the inputs as a CIB (which means it includes version details). extra info, extra sparkle ✨
  • -u, --no-version β€” generates the difference without version details. minimalism, but make it XML.

πŸ’– Application Options

  • -$, --version β€” displays the software version and dips. bye bestie πŸ‘‹
  • -V, --verbose β€” cranks up the debug output. and yes, you can specify it multiple times, so go off, stack it πŸ”₯

🌟 EXAMPLES (the tutorial arc) 🌟

First up, get your two different configuration files by running cibadmin on the two cluster setups you wanna compare:

# cibadmin --query > cib-old.xml

# cibadmin --query > cib-new.xml

Then calculate and save the difference between the two files:

# crm_diff --original cib-old.xml --new cib-new.xml > patch.xml

Now apply the patch to the original file:

# crm_diff --original cib-old.xml --patch patch.xml > updated.xml

And finally β€” the boss level β€” apply the patch to the running cluster:

# cibadmin --patch -x patch.xml

Look at you go. Iconic behavior. πŸ‘‘


🫢 AUTHOR 🫢

Written by Andrew Beekhof and the Pacemaker project contributors. legends, honestly πŸ’œ


And that's the whole page, bestie! This was Pacemaker 3.0.3+20260728.7052..., dated September 2026, handed to you from manual section 8. No cap, you're basically a cluster admin now. πŸŽ€βœ¨πŸŒΈ

πŸ“¦ where this page comes from