轻量级集群管理软件-ClusterShell
如果集群数量不多的话,选择一个轻量级的集群管理软件就显得非常有必要了。ClusterShell就是这样一种小的集群管理工具,原理是利用ssh,可以说是Linux系统下非常好用的运维工具
clustershell 简称clush 优点 :
安装方便。一条指令就能轻松安装
配置方便。很多集群管理软件都需要在所有的服务器上都安装软件,而且还要进行很多的连接操作,clustershell就相当的方便了,仅仅需要所有机器能够ssh无密码登录即可,然后只在一台服务器上安装clustershell即可
使用方便 clustershell的命令相对来说非常简单,只有一两个指令以及三四个参数需要记
实验环境 : CentOS7
192.168.94.11 clustershell
192.168.94.22 host1
192.168.94.33 host2
安装clustershell 可以用yum ,也可以用源码安装
[root@clustershell ~]# yum -y install clustershell
做主机名映射
[root@clustershell ~]# vim /etc/hosts
192.168.94.11 clustershell
192.168.94.22 host1
192.168.94.33 host2
配置ssh密钥对登录 实现免密登录
写一个简单批量分发密钥且免交互的脚本 , 首先需要下载sshpass
[root@clustershell ~]# yum -y install sshpass
用法:sshpass [-f | -d | -p | -e] [-hV]命令参数
-f filename从文件中获取密码
-d number使用number作为获取密码的文件描述符
-p password提供密码作为参数(安全性差)
-e密码作为env-var“SSHPASS”传递
没有参数 - 密码将从标准输入中获取
-h显示帮助(此屏幕)
-V打印版本信息
最多应使用-f,-d,-p或-e中的一个
[root@clustershell ~]# vim sshkey.sh
#!/bin/bash
. /etc/rc.d/init.d/functions
# 创建密钥
\rm ~/.ssh/id_rsa* -f
ssh-keygen -t rsa -f ~/.ssh/id_rsa -N "" -q
# 分发公钥
for ip in
do
sshpass -f ~/.sshpass ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168..$ip -o StrictHostKeyCh
if [ $? -eq ];then
action "copy-id 192.168.94.$ip" /bin/true
else
action "copy-id 192.168.94.$ip" /bin/false
fi
echo ""
done
给脚本添加执行权限 脚本里使用的是密码文件 位置和名字自定义 , 因为是密码文件 ,权限600
[root@clustershell ~]# chmod +x sshkey.sh
[root@clustershell ~]# chmod ~/.sshpass
[root@clustershell ~]# ll ~/.sshpass
-rw-------. root root 9月 : /root/.sshpass
执行脚本测试并且做主机名映射

开始使用clustershell进行批量管理
配置clush:
在/etc/clustershell目录下,手动创建groups文件
[root@clustershell ~]# vim /etc/clustershell/groups
all: host[,]
web: host1
db: host2 # groups文件中的all组对应是必须要配置的,clush 有 -a 这个参数,主机间用空格分离
clush管理命令常用参数:
-g 后面指定设置的组
-a 表示所有的组
-w 后面跟主机节点,多个主机中间用逗号隔开
-x 表示去掉某个节点进行操作。后面跟主机节点,多个主机中间用逗号隔开
-X 表示去掉某个组进行操作,多个组之间用逗号隔开
-b 相同输出结果合并
[root@clustershell ~]# clush -g db date
host2: Host key verification failed.
clush: host2: exited with exit code # 原因是需要交互 , 这里使用的是主机名来连接的 , 所以上面的脚本需要做修改
把之前的IP改为主机名即可

执行脚本

[root@clustershell ~]# clush -g db date
host2: 2018年 09月 08日 星期六 :: CST
[root@clustershell ~]# clush -g web date
host1: 2018年 09月 08日 星期六 :: CST
[root@clustershell ~]# clush -a date
host1: 2018年 09月 08日 星期六 :: CST
host2: 2018年 09月 08日 星期六 :: CST
# 支持管道和重定向等操作
[root@clustershell ~]# clush -a 'echo I Love Wife > /tmp/1314'
[root@clustershell ~]# clush -a cat /tmp/
host2: I Love Wife
host1: I Love Wife
[root@clustershell ~]# clush -w host1 ifconfig ens33|awk -F '[ :]+' 'NR==2{print $3}'
192.168.94.22
# 加上-b选项可以是相同结果合并输出
[root@clustershell ~]# clush -ab date
---------------
host[-] ()
---------------
2018年 09月 08日 星期六 :: CST
[root@clustershell ~]# clush -ab hostname
---------------
host1
---------------
host1
---------------
host2
---------------
host2
[root@clustershell ~]# clush -ab cat /etc/centos-release
---------------
host[-] ()
---------------
CentOS Linux release 7.5. (Core)
clush也可以进行文件和目录的分发:
--copy 表示从本地拷贝文件或目录到远程集群节点上,等于-c
--rcopy 表示从远程集群节点上拷贝文件或目录到本机上
--dest 前面表示本地要复制的文件或目录路径,后面表示远程的存放路径
[root@clustershell ~]# cat mingming
I Love Wife
[root@clustershell ~]# clush -g web -c /root/mingming --dest /root
[root@clustershell ~]# clush -g web cat /root/mingming
host1: I Love Wife
[root@clustershell ~]# clush -w host2 -c /root/mingming --dest=/root/
[root@clustershell ~]# clush -w host2 cat /root/mingming
host2: I Love Wife
# 拷贝本地目录到远程节点上
[root@clustershell ~]# clush -g web ls -l /root/
host1: 总用量
host1: -rw-------. root root 5月 : anaconda-ks.cfg
host1: -rwxr-xr-x. root root 6月 : DNS.sh
host1: -rw-r--r--. root root 8月 : master.zip
host1: -rw-r--r-- root root 9月 : mingming
host1: drwxr-xr-x root root 9月 : mywife
host1: drwxr-xr-x. root root 8月 : vim
host1: drwxr-xr-x. root root 8月 : vim-master
# 拷贝远程节点的目录或文件到本地
[root@clustershell ~]# cd mywife/
[root@clustershell mywife]# pwd
/root/mywife
[root@clustershell mywife]# ls
[root@clustershell mywife]# clush -a --rcopy /root/mingming --dest ./
[root@clustershell mywife]# ls
mingming.host1 mingming.host2
# 远程拷贝文件到本地后, 后缀会加上节点的主机名
--user=username,这个表示使用clush命令操作时,登陆ssh时使用的用户
比如我用本机的root帐号管理host1节点的damowang用户
[root@clustershell mywife]# sshpass -f ~/.sshpass ssh-copy-id -i ~/.ssh/id_rsa.pub damowang@host1
[root@clustershell mywife]# clush --user=damowang -w host1 hostname
host1: host1
# --user参数要紧跟clush后面
[root@clustershell mywife]# clush --user=damowang -w host1 whoami
host1: damowang
clush是基于ssh和scp命令进行封装的一个工具,默认的ssh端口如果不是22,那么在执行clush命令的时候需要指定端口号
进行文件传输时 ,需要加 -o -P2222(大写P)
进行批量执行操作命令时,需要加 -o -p2222(小写p)
[root@clustershell mywife]# clush -w host1 -o -P2222 -c ./mingming.host1 --dest /root/
[root@clustershell mywife]# clush -w host1 -o -p2222 ls /root/
host1: anaconda-ks.cfg
host1: DNS.sh
host1: master.zip
host1: mingming
host1: mingming.host1
host1: mywife
host1: vim
host1: vim-master
轻量级集群管理软件-ClusterShell的更多相关文章
- 轻量级集群管理软件-Ansible
ansible概述和运行机制 ansible概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具, 它用Python写成,类似于saltstack和Puppet,但是有一个不同 ...
- 集群管理软件clustershell
一.简介 1.安装方便.一条指令就能轻松安装. 2.配置方便.很多集群管理软件都需要在所有的服务器上都安装软件,而且还要进行很多的连接操作,clustershell就相当的方便了,仅仅需要所有机器能够 ...
- 深度学习GPU集群管理软件 OpenPAI 简介
OpenPAI:大规模人工智能集群管理平台 2018年5月22日,在微软举办的“新一代人工智能开放科研教育平台暨中国高校人工智能科研教育高峰论坛”上,微软亚洲研究院宣布,携手北京大学.中国科学技术大学 ...
- 运维利器-ClusterShell集群管理操作记录
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...
- Clustershell集群管理
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...
- 运维利器-ClusterShell集群管理
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...
- 集群管理工具Salt
集群管理工具Salt 简介 系统管理员(SA)通常需要管理和维护数以百计的服务器,如果没有自动化的配置管理和命令执行工具,那么SA的工作将会变得很繁重.例如,要给集群中的每个服务器添加一个系统用户,那 ...
- 译:Google的大规模集群管理工具Borg(一)------ 用户视角的Borg特性
概述 Google的Borg系统是一个集群管理工具,在它上面运行着成千上万的job,这些job来自许许多多不同的应用,并且跨越多个集群,而每个集群又由大量的机器构成. Borg通过组合准入控制,高效的 ...
- [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...
随机推荐
- sybase central 报 NullPointerException 解决
准备发布版本,但是要创建数据库的时候遇到了问题,发现之前可以正常打开的sybase Central 现在无法打开了.苦恼一段时间后找到如下解决方法. 报错如下: 解决如下: 正常打开:
- helm-chart6,子chart 和全局值
chart可以有称为子chart的依赖关系 关于子chart 1,子chart认为是"独立的",即子chart不能明确依赖于其父chart. 2,子chart无法访问其父项的值. ...
- [LeetCode] Letter Case Permutation 字母大小写全排列
Given a string S, we can transform every letter individually to be lowercase or uppercase to create ...
- Windows系统Git安装配置
Git的安装 Git是一个开源的分布式的版本控制软件,是Linus Torvalds 为了方便开源贡献者协同开发和管理 Linux 内核开发替代BitKe而开发的. 打开git官网的下载地址:http ...
- Hibernate-day04
HIbernate中的HQL查询 Hibernate中的查询方式:1,使用HQL:使用hibernate提供的面向对象的查询语句;2,使用SQL:在hibernate中允许使用原生的SQL直接查询;3 ...
- 寻找真正的入口(OEP)--广义ESP定律
1.前言 在论坛上看到很多朋友,不知道什么是ESP定律,ESP的适用范围是什么,ESP定律的原理是什么,如何使用ESP定律?看到了我在“”调查结果发现,大家对ESP定律很感兴趣,当然因为实在是太好用了 ...
- python遍历文件
#!/usr/local/bin/python # -*- coding: UTF-8 -*- #coding:gbk import re import os rootdir = 'src' def ...
- 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解
2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文&quo ...
- 如何让模拟的json数据接口能够正常的在手机上有效果
1. 确保手机与PC在同一个ip网下 这里我是通过------------360随身WIFI,20块钱淘宝上卖的,外观像U盘一样的,直接插在电脑的USB上就能在PC上创建一个WiFi,手机连接上就可以 ...
- Django2.0.4 + websocket 实现实时通信,主动推送,聊天室及客服系统
webSocket是一种在单个TCP连接上进行全双工通信的协议. webSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在WebSocket API中,浏览器 ...