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) orxml.--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-stringoverrides 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-stringoverrides 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--patchand--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-stringand (if it was specified later)--newoverride 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
- opensuse-leap 16.0: pacemaker-cli 3.0.3+20260728.7052efa194-160000.1.1 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pacemaker-cli 3.0.3+20260728.7052efa194-160000.1.1 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pacemaker-cli 3.0.3+20260728.7052efa194-160000.1.1 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pacemaker-cli 3.0.3+20260728.7052efa194-160000.1.1 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms