shell编写的多服务器自动互信脚本(安装ceph)
脚本后续更新及迭代将由kkitDeploy项目代替
https://github.com/luckman666/kkitdeploy_server
请大家持续关注kkitDeploy
相信大家都使用过分布式存储,而在分布式存储中较为出色的非ceph莫属了,但是这里就不深入聊ceph啦,我们只是聊聊安装ceph时遇到的问题。
ceph需要多台主机进行ssh互信。三台还能忍受,但是当超过三台那工作量想想就令人发指,而且都是重复性的动作。这类操作必须要优化掉。
因此用shell写了一个多服务器互信脚本,仅供大家借鉴参考。具体脚本已经上传至github可在本公众号代码仓库中找到install_ceph进行下载使用。
代码不多说了比较简单,相信大家都能看懂!
这里只讲几点我当时的书写思路:
install_ceph.sh是主节点安装程序,本着模块化的调用的方针,整个脚本脉络还是很清晰的。脚本由多个小函数组成,每个函数对应不同的功能。然后由main函数再进行调用。
互信我们需要获取本机IP地址,那就写了名为get_localip的函数。
get_localip(){
ipaddr='172.0.0.1'
ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
echo "$ipaddr"
}
然后最后边是主函数main
main(){
yum_update
yum_config
iptables_config
sysctl_config
system_config
ssh_config
ulimit_config
change_hosts
rootssh_trust
yum_install_ceph
config_ceph
install_ceph
if [ "$?" != ]; then
remove_ceph
install_ceph_repo_url
mon_admin
check_status
else
mon_admin
fi
if [ "$?" != ]; then
remove_ceph
install_ceph_repo_url
mon_admin
check_status
else
mon_admin
fi
}
main > ./setup.log >&
在这里我们实现各个方法的组合调用,最后我们只需要执行main函数就行了。同样我们不想执行哪个方法,就可以注释掉main函数中哪个方法的名字就可以了。具体使用方法见README.md
波哥写的不只是技术,而是人生!是不是灰常牛X呀!!哇咔咔咔咔!
PS:shell其实我并没有深入研究过,这么多年也就是赶着用赶着写。好在非常简单易用。写shell有种手短的感觉,shell类似那种近身肉搏型的,快,准,狠,寸劲十足。所以我们在日常项目中时长会用shell来完成最后一公里的任务!
最近哥又在憋大招,波哥品质,坚若磐石。大家可以关注我的公众号获取更多的项目代码和讲解!
shell编写的多服务器自动互信脚本(安装ceph)的更多相关文章
- linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本
linux自动交互工具expect,tcl安装,以及自动互信脚本 工作中需要对几十台服务器做自动互信,无意中发现expect命令,研究一番. 在网上找了许多资料也没有安装成功,摸索着总算成功了.现分享 ...
- 【转】shell脚本实现多台服务器自动巡检--可参考学习
shell脚本实现多台服务器自动巡检 摘要: 运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU.内存.磁盘空间是否在正常值范围内.像 ...
- shell脚本实现多台服务器自动巡检
shell脚本实现多台服务器自动巡检 摘要: 运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU.内存.磁盘空间是否在正常值范围内.像这样每天 ...
- jenkins服务器使用python脚本rabbitmqadmin和shell对目标服务器进行管理
jenkins服务器使用python脚本rabbitmqadmin和shell对目标服务器进行管理 准备工作: .jenkins服务器,安装rabbitmqadmi命令 rabbitmqadmin管理 ...
- Linux shell编写脚本部署pxe网络装机
Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机 https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...
- Linux 服务器系统监控脚本 Shell【转】
转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...
- xcode8.3 shell 自动打包脚本 记录
题记 xcode升级8.3后发现之前所用的xcode自动打包基本无法使用,因此在网上零碎找到些资料,将之前的脚本简化.此次脚本是基于xcode证书配置进行打包(之前是指定描述文件.相对繁琐).因此代码 ...
- 20181225-Linux Shell Bash环境下自动化创建ssh互信脚本
20181225-Linux Shell Bash环境下自动化创建ssh互信脚本 1. 我的Blog 博客园 https://www.cnblogs.com/piggybaba/ 个人网站 http: ...
- Linux shell编写端口扫描脚本
Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...
随机推荐
- 利用shuf对数据记录进行随机采样
最近在用SVM为分类器做实验,但是发现数据量太大(2000k条记录)但是训练时间过长...让我足足等了1天的啊!有人指导说可以先进行一下随机采样,再训练,这样对训练结果不会有太大影响(这个待考证).所 ...
- 李洪强iOS开发之RunLoop的原理和核心机制
李洪强iOS开发之RunLoop的原理和核心机制 搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研 ...
- GIS+=地理信息+云计算技术——Spark集群部署
第一步:安装软件 Spark 1.5.4:wget http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2 ...
- string string.h cstring 区别
c++中 string与string.h 的作用和区别 #include <string.h> void main() { string aaa= "a ...
- ios app抓包分析
1 使用rvictl工具 这是mac下的一条命令.ios usb连mac,然后创建虚拟网络接口. 2 使用wireshark抓包 wireshark可以抓这个虚拟网络接口上的数据包.
- HelloH5+搭建
一.所用工具 代理服务器:squid 编辑工具:HBuilder 调试工具:weinre 参考工具:Hello MUI HelloH5 二.涉及项目 ***-pifa-------------- ...
- get the page name from url
https://stackoverflow.com/questions/1874532/better-way-to-get-page-name The way I interpret the ques ...
- I.MX6 wpa_applicant 开启 debug 输出
/*********************************************************************** * I.MX6 wpa_applicant 开启 de ...
- 关于python语言使用redis时,连接是否需要关闭的问题
python操作完redis,需要关闭连接的吧,怎么关闭呢 1人赞 回复 君惜丶: redis-server会关闭空闲超时的连接redis.conf中可以设置超时时间:timeout 300 2017 ...
- Python科学计算工具包
import numpy as np # 创建一个Ndarray # 1. 从list对象中创建 # 2. 创建一个特定的数组,全1数组ones,随机数组random.randn,对角矩阵diag # ...