Linux批量管理工具parallel-ssh
Linux系统映像规模当超过30时,小小的变更也会浪费很多时间,Linux系统下有很多可用的集中管理方案,例如著名的puppet,这个是用ruby开发,号称可以管理以万计的服务器。不过对于大多数SA来说,这个不怎么轻量,设置有点复杂。
这里推荐PSSH,比DSH更强大的批量管理工具,先来看下它的命令列表。
pssh 包安装 5 个实用程序:
1 2 3 4 5 | parallel-ssh (pssh) 在多个主机上并行地运行命令。 parallel-scp (pscp)把文件并行地复制到多个主机上。 parallel-rsync (psync)通过 rsync 协议把文件高效地并行复制到多个主机上。 parallel-slurp (pslurp)把文件并行地从多个远程主机复制到中心主机上。 parallel-nuke (pnuke)并行地在多个远程主机上杀死进程。 |
安装步骤(前提系统中已经安装有python2.4+):
1 2 3 4 | wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz tar xvf pssh-2.3.1.tar.gz cd pssh-2.3.1 python setup.py install |
执行完后可以看到执行文件,相关库文件,man文件已经安装。
创建主机列表:
1 2 3 4 5 | vi webapp.txt
192.168.56.11
192.168.56.12
192.168.56.13
192.168.56.14 |
配置SSH信任关系
1 2 3 4 5 6 | mkdir ~/.ssh ssh-keygen -t rsa scp ~/.ssh/id_rsa.pub 192.168.56.11:/root/.ssh/authorized_keys scp ~/.ssh/id_rsa.pub 192.168.56.12:/root/.ssh/authorized_keys scp ~/.ssh/id_rsa.pub 192.168.56.13:/root/.ssh/authorized_keys scp ~/.ssh/id_rsa.pub 192.168.56.14:/root/.ssh/authorized_keys |
或者通过脚本批量拷贝
1 2 3 4 5 6 | ip=192.168.56. for i in $(seq 11 14) do ssh $ip$i -C mkdir /root/.ssh scp ~/.ssh/id_rsa.pub $ip$i:/root/.ssh/authorized_keys done |
或者通过读取文件的脚步拷贝
1 2 3 4 5 | for i in `cat webapp.txt` do ssh $i -C mkdir /root/.ssh scp ~/.ssh/id_rsa.pub $i:/root/.ssh/authorized_keys done |
执行命令示例
1 2 3 4 5 6 7 | #查看启动时间 pssh -h webapp.txt -l root -P uptime #复制文件到主机 pscp -h webapp.txt -l root forzw.repo /etc/yum.repos.d/ #关闭SELINUX pssh -h servers.txt -l root -P \ "sed -i '/SELINUX=enforcing/s/SELINUX=enforcing/SELINUX=disabled/'/etc/sysconfig/selinux" |