$ ./run-dev -h | sed '2,8p;d'
Tool/library for transforming/analyzing cluster configuration formats
While primarily aimed at (CMAN,rgmanager)->(Corosync/CMAN,Pacemaker) cluster
stacks configuration conversion (as per RHEL trend), the command-filter-format
framework (capable of XSLT) offers also other uses through its plugin library.
And nope, the name is not a pun, typo or lisp-pronounced cluster per se :-P As mentioned elsewhere, the project is pretty composite, just as its name is.
Historical curiosity: clufter
logotype should actually make f
look similar to ſ
letter (long s, in use some 200 years ago)
as an explicit association with an s-contained word (conversely, project
name searchable in A new alphabetical vocabulary, Gailic and English
OCR scan).
The package can either be used as a separate CLI tool (as per What) or as a Python library, which is the case, e.g., with pcs.
When properly installed, clufter
command should be only these few
letters away at your shell prompt. For simplicity, I will stick with
what one can use directly after cloning the repository and running
./run-check
(to get the helper binary compiled):
$ ./run-dev ccs2pcscmd -gsq tests/filled.conf
#!/bin/sh
# sequence generated on 2017-03-10 17:01:31 with: clufter 0.60.0a
# invoked as: ['./run-dev', 'ccs2pcscmd', '-gsq', 'tests/filled.conf']
# targeting system: ('linux', 'fedora', '27', 'Rawhide')
# using interpreter: CPython 2.7.13
pcs cluster auth ju hele <>/dev/tty
pcs cluster setup --name test ju hele --consensus 200 --join 100 \
--token 5000
pcs cluster start --all --wait=60
pcs cluster cib tmp-cib.xml
pcs -f tmp-cib.xml property set stonith-enabled=false
pcs cluster cib-push tmp-cib.xml --config
or using Python 3:
$ python3 ./run-dev ccs2pcscmd -gsq tests/filled.conf
#!/bin/sh
# sequence generated on 2017-03-10 17:02:34 with: clufter 0.60.0a
# invoked as: ['run-dev', 'ccs2pcscmd', '-gsq', 'tests/filled.conf']
# targeting system: ('linux', 'fedora', '27', 'Rawhide')
# using interpreter: CPython 3.6.0
pcs cluster auth ju hele <>/dev/tty
pcs cluster setup --name test ju hele --consensus 200 --join 100 \
--token 5000
pcs cluster start --all --wait=60
pcs cluster cib tmp-cib.xml
pcs -f tmp-cib.xml property set stonith-enabled=false
pcs cluster cib-push tmp-cib.xml --config
Here we got a sequence of pcs
commands that should get us
started with rebuilding a cluster originally based on CMAN/rgmanager
stack (with configuration captured in given file), now targetting
Corosync/Pacemaker one (for which pcs
is one of the high-level
configuration tools).
Depending on how sensitive the target environment is (conversely,
how much confident of clufter
and its output you are), you can
either reason about each command, possibly making correction in due
course (well, clufter
never had ambitions to be fully and reliably
automagic), or just pipe that into the shell interpreter, for instance:
$ ./run-dev ccs2pcscmd -gsq tests/filled.conf | bash -x
which will also turn on echoing of what is being executed, just in case.
Take this just as a showcase of the primary goal for this tool, there are many other realated conversion/analysis related tasks featured and discoverable as:
$ ./run-dev -l
Python-wise:
- lxml (
python-lxml
/python3-lxml
)
general:
- Python
- 2.7 preferred
- 2.6 with ordereddict or some kind of
collections.OrderedDict
backport (#929258) required - 3.2+ support currently deemed experimental (the test suite is passing), bug reports appreciated (see Reporting issues)
- embedded
ccs_flatten
(originally pacemaker.git/extra/rgmanager) compiled helper- suitable C compiler (
gcc
) libxml2
- suitable C compiler (
tests:
- outside of Python 2.7+, unittest2 (
python-unittest2
) or, alternatively, nose (python-nose
) is needed
Official released tarballs (as opposed to what you can download from GitHub) can be found, together with GPG signatures, at https://pagure.io/releases/clufter/ or, alternatively, at https://people.redhat.com/jpokorny/pkgs/clufter/.
Also, the HEAD
of master
branch in the repository should always
point to the latest stable, tagged (and GPG-signed, for that matter)
release. Current status of the test run using Travis CI against
this branch:
TBD
For convenience, bash completion is at user's hands by just running within the session:
$ eval "$(clufter --completion-bash)"
Indeed, to make such a feature permanent, the produced script can be appended
to or referred from some relevant file like ~/.bashrc
, or when
bash-completion
package installed, stored to ~/.config/bash_completion
(per-user) or /usr/share/bash-completion/bash_completion
(system-wide).
It's also possible this is already performed on the packaging level.
Bug reports, suggestions and feature requests are best directed at
https://pagure.io/clufter/issues, alternatively check the bottom of
clufter --help
screen when using a distribution version.
The more feedback samples emerge, the better this project can get.
Common cluster/HA channels falling under ClusterLabs umbrella:
- users dedicated mailing list
#clusterlabs
channel at Freenode IRC server