并行SSH运维工具pssh


并行SSH运维工具pssh

文章插图

随着企业IT基础架构规模不断扩张,业务也迅速扩大,企业人员要管理的和业务系统也迅速增加,从之前的几十台增加到上百台甚至几千台 。面对这么多的,要执行相同的系统配置操作,一台一台地部署显然是不现实的,而通过写脚本来完成,效率又十分低下,此时就需要一些自动化工具来批量完成 。本文介绍轻量级利器pssh,工具小巧、使用简单,但功能强大,可以为自动化提供强有力的支持 。
【并行SSH运维工具pssh】1、pssh应用场景
pssh的全称是parallel-ssh,是一个用 Python 编写的可以并发在多台 服务器 上批量执行命令的工具,它支持文件并行复制、 远程 并行执行命令、杀掉 远程 上的 进程 等 。其中,文件并行复制是pssh核心功能,也是同类工具中最大的亮点,因此,要批量在 远程 主机 上传、下载文件时,最好选用pssh这个 服务器 批量管理工具 。
要使用pssh工具包,必须保证本地和要管理的之间的单向信任,也就是要在本地和所有上配置密钥认证访问 。创建本地和之间的单向信任非常简单,下面以创建本地用户opsuser和所有上opsuser用户之间的信任为例介绍配置的基本过程 。
(1)在本地主机上创建RSA密钥和公钥
1)在本地 主机 上以opsuser用户登录 。
2)在opsuser用户的根目录内创建.ssh目录并设置读取权限 。
[opsuser@server ~]$ mkdir ~/.ssh
[opsuser@server ~]$ chmod 700 ~/.ssh
3)使用ssh-keygen命令生成基于SSH协议的RSA密钥 。
[opsuser@server ~]$ cd ~/.ssh
[opsuser@server ~]$ ssh-keygen -t rsa
在提示保存私钥(key)和公钥(public key)的位置时,选择默认值,然后依次按回车键即可 。
(2)整合公钥文件
在本地 主机 上以opsuser用户登录,执行如下操作:
[opsuser@server ~]$ cd ~/.ssh
[opsuser@server ssh]$ cat /home/opsuser/.ssh/id_rsa.pub > authorized_keys
[opsuser@server ssh]$ chmod 600 ~/.ssh/authorized_keys
[opsuser@server ssh]$ scp authorized_keys user001:/home/opsuser/.ssh/
这个操作过程是将本地节点生成的公钥文件整合为一个authorized_keys文件,然后进行授权,并将authorized_keys复制到所有上 。这里以user001为例 。
(3)测试SSH密钥认证
在本地 主机 上执行如下命令:
[opsuser@server ssh]$ ssh user001 date
这里以user001为例,其他依此类推,如果不需要输入就出现系统当前日期,说明SSH单向信任已经配置成功了 。
2、pssh的安装与用法
pssh要求 Python 版本大于2.4即可 。这里下载的是pssh-2.3.1.tar.gz,安装过程如下:
[root@server ~]# tar zxvf pssh-2.3.1.tar.gz
[root@server ~]# cd pssh-2.3.1
[root@server pssh-2.3.1]# python setup.py install
安装完成的pssh工具包附带了5个主程序,分别是:
parallel ssh(pssh),在多台上并行运行命令 。
parallel scp(pscp),把文件并行复制到多台上,类似于scp命令 。
parallel rsync(prsync),使用rsync协议将文件从本地同步到多台上 。
parallel nuke(pnuke),在多台上并行killall某一 。
parallel slurp(pslurp),把文件从多台复制到本地,与pscp命令相反 。
完成pssh安装后,执行“pssh--help”命令即可显示pssh命令的详细用法,表1是pssh常用的参数以及语法介绍 。
并行SSH运维工具pssh

文章插图
表1 pssh命令的常用参数以及含义
3、pssh应用实例
pssh命令的使用非常灵活,可以根据实际的应用需要选择对应的命令工具,例如,要在 远程 上批量执行一些信息统计命令,就可以通过pssh命令来完成 。而要将一些文件传输到 远程 的多台 主机 上,或者将 远程 主机 的某些文件复制到本地 主机 时,就需要使用pscp命令和pslurp命令了,如果要传输某些文件夹到 远程 多台 主机 上时,就必须选择prsync命令了 。
(1)pssh批量查看远程主机信息
通过pssh命令查看user002和user003上面的时间信息,实现过程如图1所示 。
并行SSH运维工具pssh

文章插图
图1 通过pssh命令查看user002和user003服务器上的时间信息
在这个操作中,通过“-H”参数指定的单台,另外,通过这个操作可以很清楚地看到“-P”参数与“-i”参数的差别 。
pssh命令更多的用途是批量管理,下面的例子演示的就是批量查看多台的负载状况,如图2和图3所示 。


推荐阅读