PacemakerのGUI(web)ツール - pcs(pcsd)のインストール

Redhatなどで利用されているpcsコマンドのGUI(web)ツールであるpcsdをイントールしてみます。

#環境
- RHEL7.2をGUIサーバ(開発ツール入)でインストールした2台のサーバ
- 事前にPacmaker1.1.15などはソースコードからインストール済で、Pacemakerの起動確認済。
 - corosync/Pacemakerの構築に関連するパッケージはインストールされていることになります。
- また、firewall及びiptblesは未設定としておきます。

#pcs(pcsd)のインストール
1.pcsソースコードのダウンロード
現時点の最新版(0.9.153)をpcsのgithubサイトからダウンロードします。
 - [pcs source](https://github.com/ClusterLabs/pcs)

2.事前準備と注意点
事前にpcsdの構築に必要なパッケージをyumなどでインストールしておきます。

- openssl-devel
- pam-devel
- ruby-devel

```
[root@rh72-02 pcsd]# yum -y install openssl-devel pam-devel
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
依存性の解決をしています
(snip)
[root@rh72-02 pcs-0.9.153]# subscription-manager repos  --enable rhel-7-server-optional-rpms
リポジトリー 'rhel-7-server-optional-rpms' はこのシステムに対して有効になっています。
[root@rh72-02 pcs-0.9.153]# yum -y install ruby-devel
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
rhel-7-server-eus-rpms                                                                                                                      | 3.5 kB  00:00:00     
rhel-7-server-optional-rpms                                                                                                                 | 3.3 kB  00:00:00     
(snip)
```

また、bundleコマンドも以下のコマンドでインストールしておきます。(以前、CentOSで確認した時は実行しなかった記憶なのでRHELの場合のみかも知れません）

```
[root@rh72-02 pcs-0.9.153]# gem install bundler
Fetching: bundler-1.13.1.gem (100%)
Successfully installed bundler-1.13.1
Parsing documentation for bundler-1.13.1
Installing ri documentation for bundler-1.13.1
1 gem installed

```

また、各ノードでクラスタユーザであるhaclusterにパスワードを設定しておきます。さらにログインシェルを変更しておきます。

```
[root@rh72-02 pcs-0.9.153]# passwd hacluster
ユーザー hacluster のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

[root@rh72-02 pcs-0.9.153]# chsh -s /bin/bash hacluster

```

注意点として。。pcsd(pcs)を利用してクラスタを構成する場合、作成済の/etc/corosync/corosync.confなどは書き換えらる為、必要に応じてバックアップしておくことをお勧めします。

3.githubのREADME.mdに記載されている通りに、インストール手順通りに構築します。
途中、メッセージが出ているようですが、問題はないようです。

 - 先に、pcsを手順通りにインストールしておきます。
 - 続けて、pcsdを手順通りにインストールします。

```
[root@rh72-02 pcsd]# make get_gems
bundle package
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this
machine.
Fetching source index from https://tojeline.fedorapeople.org/rubygems/
Fetching source index from https://tojeline.fedorapeople.org/rubygems/
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/.
Resolving dependencies...
(snip)
[root@rh72-02 pcsd]# cd ..
[root@rh72-02 pcs-0.9.153]# make install_pcsd
make -C pcsd build_gems
make[1]: ディレクトリ `/opt/pcs-0.9.153/pcsd' に入ります
bundle package
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this
machine.
Rubygems 2.0.14 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
(snip)
mkdir -p /var/log/pcsd
mkdir -p /usr/lib/
cp -r pcsd /usr/lib/
install -m 644 -D pcsd/pcsd.conf /etc/sysconfig/pcsd
install -d /etc/pam.d
install  pcsd/pcsd.pam /etc/pam.d/pcsd
install -d //usr/lib/systemd/system/
install -m 644 pcsd/pcsd.service //usr/lib/systemd/system/
install -m 755 pcsd/pcsd.service-runner /usr/lib/pcsd/pcsd
rm /usr/lib/pcsd/pcsd.service-runner
install -m 700 -d /var/lib/pcsd
install -m 644 -D pcsd/pcsd.logrotate /etc/logrotate.d/pcsd

```

4.githubのREADME.mdに記載されている通りに、各ノードでsystemctl daemon-reload後に起動し、状態を確認しておきます。

```
[root@rh72-02 pcs-0.9.153]# systemctl daemon-reload
[root@rh72-02 pcs-0.9.153]# systemctl start pcsd.service
[root@rh72-02 pcs-0.9.153]# systemctl status pcsd.service
● pcsd.service - PCS GUI and remote configuration interface
   Loaded: loaded (/usr/lib/systemd/system/pcsd.service; disabled; vendor preset: disabled)
   Active: active (running) since 木 2016-09-22 13:59:11 JST; 5s ago
 Main PID: 16018 (pcsd)
   CGroup: /system.slice/pcsd.service
           └─16018 /usr/bin/ruby /usr/lib/pcsd/pcsd > /dev/null &

 9月 22 13:59:11 rh72-02 systemd[1]: Started PCS GUI and remote configuration interface.
 9月 22 13:59:11 rh72-02 systemd[1]: Starting PCS GUI and remote configuration interface...

```

#pcsdのGUIへの接続
クラスタに接続可能なブラウザで、pcsdが起動中のどちからのノードの2224ポートにhttps接続して、接続を続行するとlogin画面が表示されますので、haclusterユーザ、設定したパスワードでログインするとpcsdのGUI(web)画面が表示されます。
クラスタの構成、起動などもGUI画面から操作可能です。

以下のリンクが参考になるかと思いますので、記載しておきます。



 - https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/High_Availability_Add-On_Reference/ch-pcsd-HAAR.html

 - http://www.unixarena.com/2016/01/rhel-7-accessing-the-pacemaker-web-ui-gui.html

手元の環境では、GUIでクラスタ作成後に一旦GUIとの接続が切れるようです。
最新版(0.9.153)の不具合かも知れませんので、再度、ログインしてから操作する必要があります。

以上です。