Pacemaker 資料一覧

Pacemakerでリソースグループが自ホストで稼動している時のみ処理を行いたい場合

2017/08/26更新

対応バージョン: Vagrant 1.4.3, Pacemaker 1.0.13, Heartbeat 3.0.5, Apache 2.2.15, Tomcat 7.0.56

Pacemakerでリソースグループが自ホストで稼動している時のみ処理を行いたい場合は以下のようなスクリプトを書けばよい。

myhost=`uname -n`

runhost=`crm resource status <リソースグループ名> | awk '{print $NF}'`

if [ ${myhost} = ${runhost} ]; then
  (任意の処理)
fi

例)

2台のクラスタ構成において稼動系のホストでRedmineのリマインドメールを出すスクリプト

# crm_mon -f
:
Online: [ s1 s2 ]
 Resource Group: web
     vip_httpd  (ocf::heartbeat:IPaddr2):       Started s1
     httpd      (ocf::heartbeat:apache):        Started s1
:

# cat redmine.sh
#!/bin/sh

PATH=${PATH}:/usr/sbin

#
# check user
#
user=`whoami`

if [ ${user} != "root" ]; then
  echo "execute root user"
  exit 100
fi

#
# check host & send mail
#
myhost=`uname -n`

runhost=`crm resource status web | awk '{print $NF}'`

if [ ${myhost} = ${runhost} ]; then
  cd /nas/contents/www/redmine-2.5.2
  PATH=${PATH}:/usr/local/rbenv/shims
  rake redmine:send_reminders days=3 RAILS_ENV=production
fi