首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Centos 7中的简单击剑/STONITH脚本

Centos 7中的简单击剑/STONITH脚本
EN

Server Fault用户
提问于 2014-09-08 13:48:22
回答 1查看 3.4K关注 0票数 2

我正在使用Centos 7安装一个简单的Cor心术/心脏起搏器/drbd高可用性集群,并希望使用自定义硬件(使用USB连接的电源开关)提供栅栏/STONITH。因此,我需要将这些设备作为STONITH资源添加到集群中。有一个简单的虚拟脚本我可以开始吗?我在/usr/sbin/fence_*中找到了几个文件,但这些文件似乎是通过某种网络连接的,并且只接受预先配置的选项。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2014-09-08 15:51:11

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

例如,./script.py -o status -p x -s y给出了"Status: ON“。如果相应地修改了get_power_statusset_power_status中的功能,那么这个脚本可能实际上是有用的。

代码语言:javascript
复制
#!/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()
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/627006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档