Hawk provides a web interface for High Availability clusters managed by the Pacemaker cluster resource manager. The current goal of the project is to provide a complete management interface to the HA cluster, both in the form of a flexible REST API as well as a modern client frontend using the API.
The exact versions specified here may not be accurate. Also, note that
Hawk also requires the rubygems listed in hawk/Gemfile
.
- ruby >= 2.2
- crmsh >= 3.0.0
- hawk-apiserver
- graphviz
- graphviz-gd
- dejavu
- pacemaker >= 1.1.8
- bundler
- iproute2
For details about the Hawk API server, see the separate repository at Github:
On openSUSE use following commands:
zypper install hawk2
crm cluster init
Once initialized, go to https://<IP>:7630/
.
use the following project for deploying hawk https://github.com/SUSE/pacemaker-deploy
You can change the configurations of both instances of the Puma sever through
the configuration file in hawk/config/puma.rb
. You can also pass options directly
through environment variables.
Please also note that the Puma server is configured to use a maximum number of 16 threads withing one worker in clustered mode. This application is thread safe and you can customize this through the puma.rb file.
For further information about threads and workers in Puma, please take a look at this great article by Heroku: Puma web server article
Hawk's tools are the programs under the hawk/tools
folder
(hawk_chkpwd
and hawk_invoke
).
ls /usr/sbin/hawk_* -l+ +
-rwsr-x--- 1 root haclient 9884 2011-04-14 22:56 /usr/sbin/hawk_chkpwd+
-rwsr-x--- 1 root haclient 9928 2011-04-14 22:56 /usr/sbin/hawk_invoke+
hawk_chkpwd
is almost identical to unix2_chkpwd
, except it restricts
acccess to users in the haclient
group, and doesn't inject any delay
when invoked by the hacluster
user (which is the user the Hawk web
server instance runs as).
hawk_invoke
allows the hacluster
user to run a small assortment
of Pacemaker CLI tools as another user in order to support Pacemaker's
ACL feature. It is used by Hawk when performing various management
tasks.