今天介绍一个超级实用的一控多的运维软件
能实现一个终端控制多台服务器,因为是基于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
Logo

一站式 AI 云服务平台

更多推荐