ClusterShell 轻量级集群管理工具,它是基于ssh和scp命令进行封装。而其中最常用的就是Clush命令。
Clush是一个非常方便的集群管理命令,通过它可以批量管理多台服务器执行相同的命令(例如安装软件,监测运行状况...),从而达到管理多个节点的目的。
一、两台虚机之间先做免密
1、做Hosts解析,把另一台虚机ip写到此文件
vim /etc/hosts
2、执行下列命令,产生本机的公私钥文件,默认存放在本用户主目录的.ssh目录下
ssh-keygen -t rsa
3、执行下列命令,将本机公钥发送到其他主机,声明对集群中其他主机的免密登陆,声明对该主机免密码登陆,对系统题是的问题回复“yes”
ssh-copy-id localhost #localhost是设置的域名也可以是ip地址
4、输入命令免密登陆测试,第一次会输入免密,之后就可以免密登录了。
root为用户名,@后加IP
ssh root@10.10.7.16
小常识:ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击
二.Clustershell的安装
1、下载clustershell-1.7.3.tar.gz 和 setuptoole-1.1.6.tar.gz
提取码:m74y 复制这段内容后打开百度网盘手机App,操作更方便哦
将这两个文件拷贝到虚拟机当前用户的主目录下
使用下列命令解压
tar -zxvf clustershell-1.7.3.tar.gz
tar -zxvf setuptoole-1.1.6.tar.gz
2、安装setuptools
进入到setuptools-1.1.6文件夹
输入下列命令构建此模块框架
sudo python setup.py build
在输入下列命令初始化编译
sudo python setup.py install
3、安装clush,然后配置clush
进入clustershell-1.7.3文件夹进行安装,在/etc目录中手动创建clustershell目录
安装命令
python setup.py install
将用户主目录下clustershell-1.7.3目录中的conf目录的所有内容拷贝过来
cp -r /clustershell-1.7.3/conf/* /etc/clustershell
在/etc/clustershell目录下创建groups文件并编辑
vim /etc/clustershell/groups
all:10.10.7.16 #all为组名,后面可以跟多个域名也可以是ip,用空格隔开
在当前虚机执行测试,然后到另一台虚机查看即可。
clush -g all "mkdir /root/001"
三、clush命令的使用:
clush -[option] group组名 "要执行的命令"
1.参数含义:
-[option]
-g 后面指定设置的组
-a 表示所有的组
-w 后面跟主机节点,多个主机中间用逗号隔开
-x 表示去掉某个节点进行操作。后面跟主机节点,多个主机中间用逗号隔开
-X 表示去掉某个组进行操作,多个组之间用逗号隔开
-b 相同输出结果合并
注:拷贝参数(需要命令加在后面,下面有举例说明):--copy 表示从本地拷贝文件或目录到远程集群节点上,等于-c
--rcopy 表示从远程集群节点上拷贝文件或目录到本机上
--dest 表示远程机器的存放路径。--dest后面可以空格跟目标路径,也可以是=目标路径。 比如--dest /tmp 等同于 --dest=/tmp
2.使用举例:
查看所有test同组节点的内存状况:
clush -g test "free -g"
从本地拷贝到远程服务器组:clush -g test --copy /root/test.txt --dest /root/
从远程服务器拷贝到本地:clush -g test -rcopy /root/test.txt --dest /root/
注:在多台不同服务器上向本地拷贝回同一个名称的文件。会自动在文件名后面加上服务器ip以区分这些同名文件。