Centos 7中简单的防护/ STONITH脚本

我正在使用Centos 7安装简单的Corosync / pacemaker / drbd高可用性群集,并希望使用定制硬件(使用USB连接的电源开关)提供屏蔽/ STONITH。 因此,我需要将这些设备添加为群集中的STONITH资源。 有一个简单的虚拟脚本,我可以开始吗? 我在/usr/sbin/fence_*发现了几个文件,但是这些文件似乎通过某种networking连接,只接受预先configuration的选项。

这是一个基于fence_cisco_ucs的最小脚本。 我不知道为什么密码字段是强制性的,我不知道get_list应该做什么。

例如,./ ./script.py -o status -px -sy给出“Status:ON”。 如果get_power_statusset_power_status的functionset_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()