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 #该脚本用于对特定目标主机 ...
随机推荐
- 【iOS系列】-iOS查看沙盒文件图文教程(真机+模拟器)
[iOS系列]-iOS查看沙盒文件图文教程(真机+模拟器) 1:模拟器 1.1 方法1: 程序中打印一下的地址,能直接前往沙盒路径. NSString *path = [NSSearchPathFor ...
- 查看和改动MySQL数据库表存储引擎
要做一名合格的程序猿,除了把代码写的美丽外,熟知数据库方面的知识也是不可或缺的.以下总结一下怎样查看和改动MySQL数据库表存储引擎: 1.查看数据库所能支持的存储引擎: ...
- 百度AI的语音合成,语音识别
1,语音的合成,识别 后端代码: from aip import AipSpeech, AipNlp import os # 语音合成 """ 你的 APPID AK S ...
- ubuntu中查看已安装软件包的方法
ubuntu中查看已安装软件包的方法: 方法一:在新立得软件包管理器中,打到已安装,便可以看看有多少包被安装. 如果想把这些包的信息复制到一文件里,可用下面的方法. 方法二:在终端输入 sudo dp ...
- C项目实践--图书管理系统(2)
前面在<<C项目实践-图书管理系统(1)>>中把系统中的三大功能模块中可能涉及到的常量,结构体及相关函数进行了声明定义,下来就来实现它们. 执行系统首先从登录到系统开始,所以首 ...
- qemu所支持的网卡
1 命令 -net nic 创建一个network interface card,即创建一个网卡,默认是e1000网卡. 2 qemu所支持的网卡类型 2.1 rtl8139 Realtek 10/1 ...
- cxf与struts2拦截器冲突的解决方案
最近学习接口,学习了下cxf,用tomcat部署访问的时候,发现接口不能访问:百度了很多,最终找到比较好的解决方案: sturts2配置: <!-- 设置strus拦截器 --> < ...
- YTU 2894: G--我要去内蒙古大草原
2894: G--我要去内蒙古大草原 时间限制: 1 Sec 内存限制: 128 MB 提交: 162 解决: 8 题目描述 春天到了,小明想要从烟台开车去内蒙古大草原放松一下,这两地的距离是14 ...
- java修改linux文件
package vedio.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fil ...
- Junit常用操作
断言方法: public static void assertEquals(Object[] expected, Object[] actual) // 测试a是否等于b public static ...