我建立了一个高可用性系统心跳,我希望当主集群出现掉线并且辅助集群被激活时,Heartbeat 在其中启动并执行一个 shell 脚本。
内容
/etc/ha.d/haresources
master IPaddr::10.0.0.1/24 test.sh
内容
/etc/ha.d/ha.cf
autojoin none debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 ucast ens32 10.0.0.3 ucast ens32 10.0.0.2 udpport 694 use_logd yes keepalive 1 deadtime 10 warntime 5 initdead 20 node master node slave auto_failback on
我授予脚本执行权限并将其放在路径中/etc/init.d/
,但仍然无法通过 Heartbeat 执行它,这种类型的过程可行吗?
答案1
有很多不同的方法可以实现这一点。
你可以把脚本放入/etc/init.d/
但您需要确保它符合 LSB 标准:http://www.linux-ha.org/wiki/LSB_Resource_Agents
您可以为 Pacemaker 编写一个 OCF 资源代理:http://www.linux-ha.org/doc/dev-guides/ra-dev-guide.html
或者您可以尝试使用 ocf:heartbeat:anything 资源代理。它可以运行任意命令,但需要设置/要求。在其中一个节点上运行以下命令以了解更多信息:# crm ra info ocf:heartbeat:anything