运维实用神器-clustershell(实现多台服务器同时控制)
今天介绍一个超级实用的一控多的运维软件能实现一个终端控制多台服务器,因为是基于ssh的方式,所以要推公钥到被控制端。废话不多说,实验看效果1.编辑本地hosts文件及推送公钥[root@localhost clustershell]# cat /etc/hosts192.168.182.120 web1192.168.182.130 web2##这里我就用了两台机器来演示推公钥ssh-keygen
今天介绍一个超级实用的一控多的运维软件
能实现一个终端控制多台服务器,因为是基于ssh的方式,所以要推公钥到被控制端。
废话不多说,实验看效果
1.编辑本地hosts文件及推送公钥
[root@localhost clustershell]# cat /etc/hosts
192.168.182.120 web1
192.168.182.130 web2
## 这里我就用了两台机器来演示
推公钥
ssh-keygen ##生成公钥
ssh-copy-id web1 ##推送公钥到对应主机也能用ip地址
ssh-copy-id web2
2.安装cluster软件
yum install -y clustershell
手动创建groups主机清单
cd /etc/clustershell/
touch groups ##用来调用的地址池,类似于ansible的host文件
3.编辑groups文件
[root@localhost clustershell]# cat groups
all: web[1,2] ##必须配置的
db: web1
node: web2
配置好了
不用重启软件
直接操作就行了
实操演示:
先介绍一下简单用法:
clush命令:
clush -a 全部 等于 clush -g all
clush -g 指定组
clush -w 操作主机名字,多个主机之间用逗号隔开
clush -g 组名 -c --dest 文件群发 (-c等于–copy)
演示:1 clush -a hostname -I
2 clush -g db hostname -I ## -g 指定组名 ##db 组名
3 clush -w web2 hostname -I ## -w 指定主机名 ##web2 主机名
4 clush -w web1 -c groups --dest /root/ ##复制文件 注:文件夹也不用-r参数
注意一点,当ssh端口不是22端口时
由于clush是基于ssh和scp命令进行封装的一个工具,默认的ssh端口如果不是22,那么在执行clush命令的时候需要指明端口:
1)进行文件传输时, 需要加 -o -P57891 即大写P
2)进行直接访问(批量执行操作命令)时, 需要加 -o -p57891 即小写P
# clush -g virtual -o -P22222 -c /data/ntpcheck.sh --dest /data/
# clush -g virtual -o -p22222 /etc/init.d/nginx restart
更多推荐




所有评论(0)