##前言##
哈喽大家好呀!大家在管理服务器的时候如果只是一两台还好,当你管理三台以上的服务器的时候,你安装任何一个软件更改任何一个配置文件就要无比麻烦的每一台机器都去执行命令(当然用docker等的请无视),pssh可以帮我们解决这些问题,可以吧准备好的脚本批量在所有机器上进行执行,帮助你批量管理服务器集群!
附上:
喵了个咪的博客:w-blog.cn
pssh官网地址:http://www.theether.org/pssh/
##1. 安装##
pssh和monit的安装方式一样简单都可以通过yum安装即可
yum install pssh
然后我们需要吧我们的服务器集群建立好一个文件存起来,推荐存放在/usr/loca/pssh下建立一个hostname的文件,加入如下内容
[user@]host[:port]
#例子(默认root用户22端口):
root@localhost:22
##2. 使用##
使用pssh -i -h hostname "env"就可以在hostname中的所有服务器上执行env命令(ssh-key被信任的情况下否则需要加 -A 会需要输入密码)
注意:通过ssh连接一下保存一下key不然会异常
通过一下命令参考
-h 执行命令的远程主机列表 或者 -H user@ip:port 文件内容格式[user@]host[:port]
-l 远程机器的用户名
-p 一次最大允许多少连接
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行的超时时间
-A 提示输入密码并且把密码传递给ssh
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令
-i 显示标准输出和标准错误在每台host执行完毕后
-I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入
##3. 场景
那么在什么场景下面我们需要pssh来帮助我们完成常用的shell操作呢?
###统一环境
在一般的中小公司服务器管理下最大的问题就是环境统一问题,这个服务器nginx你装的是1.9,3,那个服务器装的是2.0.1,然后这个问题在长时间维护中就会无限放大,当别人接过几次手了之后就更惨了,所以所有所有的服务器从感觉的服务器开始同使用pssh统一配置安装等都可以统一起来不会有特别麻烦的兼容问题!
###服务器维护
比如在上线的时候服务器需要关闭对外服务器你可能需要关闭外部访问,这个时候要是服务器比较或也不可能登录每一台服务器进行关闭,这个时候使用pssh就可以很好地统一关闭服务或者切换到升级页面(用docker也要解决这个问题)
##4. 总结##
pssh总之是一个非常好用的工具,在很多场景都能起到很好的集群服务器管理的作用,大家GET到了吗?
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!