Linux运维:多主机ssh封装器mussh

mussh的全称是MUltihost SSH WrApper,它其实是一个 SSH 封装器,由一个 shell 脚本实现 。通过mussh可以实现批量管理多台 远程 的功能 。在大规模自动化 运维 环境中,mussh可以起到很好的补充作用 。
【Linux运维:多主机ssh封装器mussh】1、mussh功能介绍
mussh和pssh、pdsh类似,都用于批量管理,并且可以互为补充,通过mussh可以同时在多台上执行命令或脚本,这里重点关注mussh执行脚本的功能 。mussh可以把本地的脚本在多台上执行,这个功能十分有用,下面会做重点介绍 。
要使用mussh的批量管理功能,仍然需要在本地管理和之间做的单向信任 。
2、mussh的安装与语法
mussh的安装非常简单,这里下载的软件包为mussh-1.0.tgz,将安装包解压到本地管理 主机 上即可完成mussh的安装,解压出来的mussh命令可直接使用 。
执行“mussh--help”命令即可获取mussh的详细用法,这里详细介绍mussh常用的一些参数及其含义和用法,如表1所示 。

Linux运维:多主机ssh封装器mussh

文章插图
表1 mussh的常用参数及含义
3、mussh应用实例
mussh的使用方法与pssh、pdsh基本类似,在完成本地管理 主机 与 远程 多台 主机 之间的 SSH 认证之后,就可以使用mussh批量管理 远程 了 。首先看一个最简单的mussh应用实例,如图1所示 。
Linux运维:多主机ssh封装器mussh

文章插图
图1 mussh的应用实例
在这个例子中,主要使用了“-h”和“-c”参数(注意“-h”参数后面多台的写法),最后通过“-c”参数指定了在上要执行的命令,当需要执行多个命令时,每个命令之间用分号分隔 。
当需要管理的较多时,可以将所有名或IP地址写到一个文件中,然后通过mussh的“-H”参数调用即可,如图2所示 。
Linux运维:多主机ssh封装器mussh

文章插图
图2 mussh通过文件读取远程主机列表信息
这个例子用到了“-H”和“-l”两个参数,“-H”参数用来指定需要读取的列表文件,“-l”参数指定在上执行命令的用户为opsuser 。
如果需要在上执行的命令较多,一个一个地执行mussh命令就会变得比较烦琐,此时可以将要执行的所有命令写到一个脚本文件中,然后通过mussh的“-C”参数调用即可,如图3所示 。
图3 通过mussh命令将本地脚本在多台远程主机上执行
这个例子用到了“-o”、“-s”和“-C”三个新参数,如果 远程 主机 开放的ssh端口不是默认的22,那么需要通过mussh提供的“-o”参数来指定ssh的端口,这实际上是通过“-o”参数调用ssh服务配置文件ssh_config中的参数选项 。 在执行一个本地脚本时,可以通过“-C”参数实现,这个脚本可以是 shell 脚本、 Python 脚本、Perl脚本等,只要 远程 服务器 上有这个执行环境就行,如果 远程 服务器 上的脚本执行路径不是默认的,那么需要通过“-s”参数指定执行脚本需要的 shell 路径 。
至此,mussh的用法基本介绍完毕了 。




    推荐阅读