1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
# PCS - Pacemaker/Corosync Configuration System
Pcs is a Corosync and Pacemaker configuration tool. It permits users to easily
view, modify and create Pacemaker based clusters. Pcs contains pcsd, a pcs
daemon, which operates as a remote server for pcs.
## Pcs Branches
* main
* This is where pcs-0.12 lives.
* Clusters running Pacemaker 3.x on top of Corosync 3.x are supported.
* The main development happens here.
* pcs-0.11
* Clusters running Pacemaker 2.1 on top of Corosync 3.x are supported.
* This branch is in maintenance mode - bugs are being fixed but only a subset
of new features lands here.
* pcs-0.10
* Clusters running Pacemaker 2.0 on top of Corosync 3.x are supported.
* Pacemaker 2.1 is supported, if it is compiled with `--enable-compat-2.0`
option.
* This branch is no longer maintained.
* pcs-0.9
* Clusters running Pacemaker 1.x on top of Corosync 2.x or Corosync 1.x with
CMAN are supported.
* This branch is no longer maintained.
## Dependencies
These are the runtime dependencies of pcs and pcsd:
* python 3.12+
* python3-cryptography
* python3-dateutil 2.7.0+
* python3-lxml
* python3-pycurl
* python3-pyparsing 3.0.0+
* python3-tornado 6.1.0+
* [dacite](https://github.com/konradhalas/dacite)
* ruby 3.1.0+
* killall (package psmisc)
* corosync 3.x
* pacemaker 3.x
* certutil (package nss-tools or mozilla-nss-tools)
## Installation from Source
Apart from the dependencies listed above, these are also required for
installation:
* python development files (packages python3-devel, python3-setuptools 66.1+,
python3-pip, python3-wheel if python3-setuptools < 71)
* ruby development files (package ruby-devel)
* rubygems
* rubygem bundler (package rubygem-bundler or ruby-bundler or bundler)
* autoconf, automake
* pkgconf, pkgconfig(booth), pkgconfig(sbd)
* pacemaker-libs-devel (or libpacemaker-devel and libpacemaker3-devel)
* gcc
* gcc-c++
* FFI development files (package libffi-devel or libffi-dev)
* printf (package coreutils)
* redhat-rpm-config (if you are using Fedora)
* wget (to download bundled libraries)
During the installation, all required rubygems are automatically downloaded and
compiled.
Web UI frontend is no longer part of pcs sources. You can get it at
[https://github.com/ClusterLabs/pcs-web-ui](https://github.com/ClusterLabs/pcs-web-ui).
Web UI frontend can run in two modes, either as a cockpit plugin or as a
standalone application served by pcsd. Specify `--enable-webui` flag for
`./configure` to build pcsd backend support for running the web UI frontend as
a standalone application.
To install pcs and pcsd run the following in terminal:
```shell
./autogen.sh
./configure [--enable-local-build] [--enable-individual-bundling] [--enable-webui]
make
make install
```
**Common configure options**:
* `--enable-local-build` - downloads all Python dependencies which can be
bundled - see macros `PCS_CHECK_PYMOD` with 3rd argument `[yes]` in
`configure.ac`
* `--enable-individual-bundling` - downloads only dependencies (both Python and
rubygems) which are not installed on the system
* `--enable-webui` - build support for web UI as a standalone application
If you are using GNU/Linux with systemd, it is now time to:
```shell
systemctl daemon-reload
```
Start pcsd and make it start on boot:
```shell
systemctl start pcsd
systemctl enable pcsd
```
## Packages
Currently this is built into Fedora, RHEL, CentOS and Debian and its
derivates. It is likely that other Linux distributions also contain pcs
packages.
* [Fedora package git repositories](https://src.fedoraproject.org/rpms/pcs)
* [Current Fedora .spec](https://src.fedoraproject.org/rpms/pcs/blob/rawhide/f/pcs.spec)
* [Debian-HA project home page](https://wiki.debian.org/Debian-HA)
## Quick Start
* **Authenticate cluster nodes**
Set the same password for the `hacluster` user on all nodes.
```shell
passwd hacluster
```
To authenticate the nodes, run the following command on one of the nodes
(replacing node1, node2, node3 with a list of nodes in your future cluster).
Specify all your cluster nodes in the command. Make sure pcsd is running on
all nodes.
```shell
pcs host auth node1 node2 node3 -u hacluster
```
* **Create a cluster**
To create a cluster run the following command on one node (replacing
cluster\_name with a name of your cluster and node1, node2, node3 with a list
of nodes in the cluster). `--start` and `--enable` will start your cluster
and configure the nodes to start the cluster on boot respectively.
```shell
pcs cluster setup cluster_name node1 node2 node3 --start --enable
```
* **Check the cluster status**
After a few moments the cluster should startup and you can get the status of
the cluster.
```shell
pcs status
```
* **Add cluster resources**
After this you can add stonith agents and resources:
```shell
pcs stonith create --help
```
and
```shell
pcs resource create --help
```
## Further Documentation
[ClusterLabs website](https://clusterlabs.org) is an excellent place to learn
more about Pacemaker clusters.
* [ClusterLabs quick start](https://clusterlabs.org/quickstart.html)
* [Clusters from Scratch](https://clusterlabs.org/pacemaker/doc/2.1/Clusters_from_Scratch/html/)
* [ClusterLabs documentation page](https://clusterlabs.org/pacemaker/doc/)
## Inquiries
If you have any bug reports or feature requests please feel free to open a
github issue on the pcs project.
Alternatively you can use ClusterLabs
[users mailinglist](https://lists.clusterlabs.org/mailman/listinfo/users)
which is also a great place to ask Pacemaker clusters related questions.
|