Command-line interface for High-Availability cluster management on GNU/Linux systems.
Python Shell Vim script Roff Makefile M4 Other
Clone or download
krig Merge pull request #381 from liangxin1300/0814a
dev: a conservative way for commit 715f27
Latest commit 6295304 Aug 15, 2018
Failed to load latest commit information.
.vscode dev: Add VSCode project settings Mar 4, 2018
bin dev: crm: create limit for python3 only Oct 26, 2017
contrib high: bash_completion: Adjust for non-interactive mode(bsc#1090304) Apr 20, 2018
crmsh dev: a conservative way for commit 715f27 Aug 15, 2018
doc doc: Fix unbalanced example marker Apr 16, 2018
hb_report high: hbreport: adjustment for hbreport(bsc#1088784) Apr 11, 2018
scripts clvm-vg wizard: update to use LVM-activate RA Jan 10, 2018
templates medium: templates: Clearer descriptions for editing templates (boo#92… Mar 16, 2015
test dev: Using ipaddress instead of ipcalc in Python3 Jun 28, 2018
utils medium: hb_report: Avoid calling deprecated network utilities (bsc#10… Feb 8, 2018
.gitignore dev: Update .gitignore with more build artifacts Mar 4, 2018
.hgignore Dev: Added new website source Aug 15, 2013
.landscape.yaml dev: Update configuration Nov 1, 2017
.travis.yml test: Don't do user manipulation on Travis Jan 17, 2018
AUTHORS dev: Update AUTHORS Mar 4, 2018
COPYING build: add build and generic doc files Oct 19, 2011
ChangeLog dev: Release 3.0.0 Jan 31, 2017
Dockerfile dev: Update Dockerfile Oct 27, 2017 dev: hb_report: Rewrite the hb_report script completely in Python Oct 12, 2017
NEWS build: add build and generic doc files Oct 19, 2011 dev: Add information about the test suites to Nov 1, 2017
TODO doc: Update TODO Sep 10, 2014 Dev: Clean up unused definitions from autotools chain Oct 4, 2013 dev: Set version to 4.0.0 in Nov 1, 2017 dev: hb_report: fate#321640: config file for hb_report Oct 17, 2017 dev: Generate spec file version w/ autotools Nov 1, 2017
data-manifest test: Don't do user manipulation on Travis Jan 17, 2018
requirements.txt dev: change dependence in requirements.txt and tox.ini Oct 27, 2017 dev: Make sure scripts use python3 (fate#323526) Oct 30, 2017
tox.ini dev: change dependence in requirements.txt and tox.ini Oct 27, 2017 high: Makefile: Don't unstall hb_report using data-manifest (bsc#936026) Jun 25, 2015 low: Remove build revision from version Jul 3, 2015


Build Status Code Health


crmsh is a command-line interface for High-Availability cluster management on GNU/Linux systems, and part of the Clusterlabs project. It simplifies the configuration, management and troubleshooting of Pacemaker-based clusters, by providing a powerful and intuitive set of features.

crmsh can function both as an interactive shell with tab completion and inline documentation, and as a command-line tool. It can also be used in batch mode to execute commands from files.



Crmsh is implemented in Python, and requires Python version 3.4 or newer. Versions of crmsh older than the 4 series ran on Python 2, so if you don't have access to a Python 3 interpreter, you will need to use one of the older releases.

The GNU Autotools suite is used to configure the OCF root directory, the Asciidoc tool which is used to generate documentation and the default daemon user (usually hacluster).

It then calls the python setuptools to actually process the Python module sources and install into the Python system site-packages directory.

make install

Test suites

There are two sets of tests: Unit tests and regression tests.

To run the unit tests, call test/run. This uses nosetests to run a set of test cases that don't need a full Pacemaker environment.

To run the regression tests in a docker container, use the test/ script. This relies on having access to docker to pull down the base image and run the regression test suite. The docker base image used is defined in the Dockerfile included in the repository.


./doc: man page, source for the website and other documentation
./crmsh: the code
./templates: configuration templates
./test: unit tests and regression tests
./contrib: vim highlighting scripts and other semi-related
./hb_report: log file collection and analysis tool


The source code for crmsh is kept in a git source repository. To check out the latest development version, install git and run this command:

git clone

There is a git pre-commit hook used to update the data-manifest which lists all the data files to be installed. To install this, run

cp contrib/git-hook-pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit