灌溉梦想,记录脚步
« »
2012年7月23日技术合集

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"

日志信息 »

该日志于2012-07-23 22:26由 kevin 发表在技术合集分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

发表回复