我正在使用Centos 7安装一个简单的Cor心术/心脏起搏器/drbd高可用性集群,并希望使用自定义硬件(使用USB连接的电源开关)提供栅栏/STONITH。因此,我需要将这些设备作为STONITH资源添加到集群中。有一个简单的虚拟脚本我可以开始吗?我在/usr/sbin/fence_*中找到了几个文件,但这些文件似乎是通过某种网络连接的,并且只接受预先配置的选项。
发布于 2014-09-08 15:51:11
下面是一个基于fence_cisco_ucs的最小脚本。我不知道为什么密码字段是强制性的,我也不知道get_list应该做什么。
例如,./script.py -o status -p x -s y给出了"Status: ON“。如果相应地修改了get_power_status和set_power_status中的功能,那么这个脚本可能实际上是有用的。
#!/usr/bin/python
import sys, re
sys.path.append("/usr/share/fence")
from fencing import *
def get_power_status(conn, options):
someoption = options["--someoption"]
#status = send_command(someoption)
status = "on"
return status
def set_power_status(conn, options):
action = options["--action"]
if action == "on":
onoff = "1"
else:
onoff = "0"
#send_command(onoff)
return
def get_list(conn, options):
outlets = { }
return outlets
def define_new_opts():
all_opt["someoption"] = {
"getopt" : "s:",
"longopt" : "someoption",
"help" : "--someoption=[string] Some option.",
"required" : "1",
"shortdesc" : "Some option.",
"order" : 1 }
def main():
device_opt = [ "passwd", "someoption" ]
atexit.register(atexit_handler)
define_new_opts()
options = check_input(device_opt, process_input(device_opt))
docs = { }
docs["shortdesc"] = "Short Description"
docs["longdesc"] = "Longer Description"
docs["vendorurl"] = "http://somewhere"
show_docs(options, docs)
## Do the delay of the fence device before logging in
## Delay is important for two-node clusters fencing but we do not need to delay 'status' operations
if options["--action"] in ["off", "reboot"]:
time.sleep(int(options["--delay"]))
result = fence_action(None, options, set_power_status, get_power_status, get_list)
sys.exit(result)
if __name__ == "__main__":
main()https://serverfault.com/questions/627006
复制相似问题