除了Clusterssh,pssh等之外,是否还有其他选择可以通过一个接口管理多个基于ssh的服务器?
Clusterssh的一个弱点是我的服务器使用基于密钥的身份验证,并使用passhprase进行登录,并且无法使用私钥登录到服务器。
是否有任何其他方法可支持使用私钥进行身份验证?
pssh
的-P
选项。
除了Clusterssh,pssh等之外,是否还有其他选择可以通过一个接口管理多个基于ssh的服务器?
Clusterssh的一个弱点是我的服务器使用基于密钥的身份验证,并使用passhprase进行登录,并且无法使用私钥登录到服务器。
是否有任何其他方法可支持使用私钥进行身份验证?
pssh
的-P
选项。
Answers:
看看Rundeck- http: //rundeck.org/
首先定义您的任务:
from fabric.api import *
@parallel
@hosts('192.168.3.118', '192.168.6.142')
def hostname():
run('hostname')
然后通过fab
命令行工具执行:
$ fab -f /path/to/.py/file hostname
[192.168.3.118] Executing task 'hostname'
[192.168.6.142] Executing task 'hostname'
[192.168.6.142] run: hostname
[192.168.3.118] run: hostname
[192.168.6.142] out: SVR040-6142
[192.168.3.118] out: SVR040-3118.localdomain
Done.
您可以全力以赴,并安装配置管理系统,例如Puppet或Chef。您没有提到您实际上要管理多少个节点,因此这可能有些过分,但是,当然,您可以通过这种方式集中控制许多计算机。如果您现在很小,但是正在成长,您可能还想在变得更大之前,先设置例如Chef。
如果需要在一组特定的节点上运行临时命令,则可以执行类似的操作knife ssh 'roles:webserver' 'hostname'
(knife是Chef的命令行工具),以hostname
对具有Web服务器角色的所有节点运行该命令。
我用期待的脚本来自动登录(尤其是因为我必须通过一个JUMB框和一个chroot进入,必须输入密码地段)和做了一些“微调”,以CSSH的配置。因此,我的bin文件夹中有这个“主脚本”,给出了“服务器名称/别名”,它将带我进入所需的服务器以及所需的位置。
在〜/ .clusterssh / config中,我将“ ssh”参数设置为指向脚本,还必须将“ ssh_args”设置为一些无害/伪arg,这是因为cssh具有默认的args列表(如果实际上留空)默认列表将最终出现在脚本中。
因此,脚本(在每个窗口/终端中)将接收此args和给cssh的args中的1个,它从给定服务器的文件中恢复脚本的凭据集以及它必须执行的步骤才能到达位置我想要,然后用所有这些数据调用“期望代码”。
〜/ .clusterssh /配置
ssh=/home/user/bin/qs.sh
ssh_args=-a
qs.sh
#!/bin/bash
export PATH=~/bin:$PATH
shift
case $1 in
q4|q5|q6|q7|q8|q9)
essh user1@axt$1
### essh it's some little bash script that does the things I said before and in the end it launches the expect
;;
q1|q2|q3)
essh axtr@axt$1
;;
*)
echo "GOOH"
esac
所以我通常这样称呼它
# cssh q4 q5 q6 q7
它也可以与具有集群“ qAll q4 q5 q6 q7”的“集群别名”一起使用,我可以使用cssh qAll进行调用
希望它对其他人有帮助。
您还应该查看MCollective,它可能是与多个服务器实时交互的最佳,最灵活的方式。正确设置是一项艰巨的任务,可能会稍微满足您的需求,但是它肯定胜过pssh,Clusterssh和所有其他基于SSH的解决方案。只要具备一定的Ruby知识,一旦将其安装到位,就可能无所不能。
我问了同样的问题,因为我发现在Mac OS X上clusterssh对X11或XQuartz的依赖很烦人,最重要的是,clusterssh打开的终端窗口看起来比Terminal.app中的还要难看。
这就是我在Joerg Jaspert的博客上偶然发现基于tmux的脚本的方式:http : //blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html
基本上,您键入
tm ms HOST1 user@HOST2
并打开一个带有两个面板的tmux窗口的会话
pssh
?您是否需要并行或仅一个程序来管理多个SSH服务器?