如何使用粉碎 clp 来 python pssh

Posted

技术标签:

【中文标题】如何使用粉碎 clp 来 python pssh【英文标题】:how to python pssh with smash clp 【发布时间】:2020-05-21 16:33:44 【问题描述】:

我正在尝试自动获取 500 台服务器的状态。 我可以通过 ssh 进入服务器 bmc 控制台,该控制台使用有效的用户名和密码打开了一个粉碎 clp 终端,然后运行命令:chassis --get power status,这会在屏幕上返回:The host status is on

我已经对服务器进行了 pssh,但在服务器关闭的情况下,我想通过 BMC 控制台进行 pssh 并运行相同的命令来检查服务器是否可用。当我在控制台上对 pssh 使用与服务器上相同的方法时,什么也没有发生。在我强制它停止之前,它会在那里执行脚本,不会返回任何错误。

我如何 pssh 到粉碎 clp?

我的简单测试脚本:

from pssh.clients import ParallelSSHClient

hosts = ['server-con']
username='uname'
password='password'
client = ParallelSSHClient(hosts, username, password)
output = client.run_command('chassis --get power status')
for host, host_output in output.items():
    for line in host_output.stdout:
        print(line)

【问题讨论】:

【参考方案1】:

我不知道 BMC 控制台或机箱,但据我了解,您正在尝试使用 python ssh 命令包装以远程运行并遇到问题。

我的建议是简单地使用子进程并运行它

output = subprocess.run("ssh foo chassis --get power status", shell=True, stdout=subprocess.PIPE)

【讨论】:

以上是关于如何使用粉碎 clp 来 python pssh的主要内容,如果未能解决你的问题,请参考以下文章

批量操作-pssh

运筹系列71:CBC和CLP的python接口Cylp

如何在单行 pssh 中运行多个命令?

如何通过 pssh/fabric 库使用 lsof 命令? Bash:找不到lsof命令[重复]

tree老师:PSSH自动化运维实战

pssh一个微量级自动化工具