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