Shell脚本一键部署MongoDB

Shell脚本一键部署MongoDB

基本实施思路:

安装MongoDB→创建多实例(创建数量可根据需求自定义)→开启所有实例并展示端口

#!/bin/bash
#自动安装MongoDB
#
#检查MongoDB是否已安装
local="/etc/yum.repos.d/MongoDB.repo"
rpm -q mongodb-org &> /dev/null
if [ $? -ne 0 ];then
#配置本地YUM源
    ls /etc/yum.repos.d/ | grep Mongo &> /dev/null
    if [ $? -ne 0 ];then
        touch $local
        echo "[mongodb-org]" >> $local
        echo "name=mongodb" >> $local
        echo "baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.6/x86_64/" >> $local
        echo "gpgcheck=1" >> $local
        echo "enabled=1" >> $local
        echo "gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" >> $local
        yum list
        yum install mongodb-org -y
    else
        echo "配置本地YUM源配置完成"
        yum list
        yum install mongodb-org -y
    fi
else
    echo "MongoDB已安装~~~~~"
fi
#反复比对密钥(可能不会一次成功)
for ((i=1;i<=10;i++))
do
    rpm -q mongodb-org &> /dev/null
    if [ $? -ne 0 ];then
        yum install mongodb-org -y
    fi
done
#监听所有网段
sed -i "/bindIp/s/127.0.0.1/0.0.0.0/" /etc/mongod.conf
systemctl start mongod.service
#检测是否启动正常
netstat -atnp | grep 27017 &> /dev/null
if [ $? -eq 0 ];then
    echo "MongoDB服务启动,一号实例建立完成"
else
    echo "启动失败"
    exit 1
fi
echo "=========================================================="
echo "即将开始创建实例"
sleep 5
#死循环进行多实例的创建
for ((i=2;i>0;i++))
do
#判断数据目录与日志文件是否存在
if [ ! -e /data/mongodb/mongodb$i ] && [ ! -e /data/mongodb/mongod$i.log ];then
    read -p "是否开始创建第$i个实例(y/n):"  create
    p=`expr $i - 1`
    case $create in
        y)
#建立数据存放路径
            mkdir -p /data/mongodb/mongodb$i
#新建多实例对应的日志文件
            touch /data/mongodb/mongodb$i.log
#日志文件提权
            chmod 777 /data/mongodb/mongodb$i.log
#复制原配置文件
            cp -p /etc/mongod.conf /etc/mongod$i.conf
#修改对应的数据文件存放路径&日志文件路径
            sed -i "/path/s/\/var\/log\/mongodb\/mongod.log/\/data\/mongodb\/mongodb$i.log/" /etc/mongod$i.conf
            sed -i "/dbPath/s/\/var\/lib\/mongo/\/data\/mongodb\/mongodb$i/" /etc/mongod$i.conf
            point=`cat /etc/mongod.conf | grep port | awk ‘{print $2}‘`
#更改实例对应的端口号
            sed -i "/port/s/27017/`expr $point + $p`/" /etc/mongod$i.conf
#启动对应实例
            mongod -f /etc/mongod$i.conf
            netstat -atnp | grep $point &> /dev/null
            if [ $? -eq 0 ];then
                echo "$i号实例开启成功"
            else
                echo "致命错误"
                exit 1
            fi
            ;;
        n)
            echo "本次共创建$p个实例(包括一号实例)"
#展示所有实例端口号
            netstat -atnp | grep mongod | awk ‘{print $4}‘ | awk -F: ‘{print $2}‘ > shili
            echo "端口号为:"
            cat shili
            break ;;
        *)
            echo "请输入y/n,别搞些有的没的"
    esac
else
    echo "$i号实例已创建"
fi
done
rm -rf shili

原文地址:https://blog.51cto.com/14484404/2460799

时间: 2024-10-18 05:53:44

Shell脚本一键部署MongoDB的相关文章

shell脚本一键在线安装redis数据库(使用函数实现)

shell脚本一键在线安装redis数据库(使用函数实现) 前面的文章给出了有关手工编译安装redis的流程,并且在模拟搭建redis集群时给出了在线安装redis的过程,于是就想着自己写好在线安装的redis脚本,本文主要使用shell函数来实现并且验证在线安装的过程,执行无误后就想着分享出来. PS:系统环境为Centos7.4 脚本如下: #!/bin/bash function checkroot(){ if [ $UID -ne 0 ] then echo "|------------

Shell脚本自动部署(编译)LAMP平台

Shell脚本自动部署(编译)LAMP平台 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装LAMP有以下几个优点 根据生产环境灵活定制程序 优化编译参数,提高性能 解决不必要的软件依赖 友情提示:对编译安装有疑问的朋友, 查看我以前写的博客:教你使用rpm.yum.编译等方式安装软件 点击此处获得更好的阅读体验 为什么要用脚本进行部署? 在很多情况下部署LAMP平台并不止一

shell脚本批量部署ssh

日常运维工作中,需要给几十上百台服务器批量部署软件或者是重启服务器等操作, 这样大量重复性的工作一定很苦恼,本文给大家提供了最基本的批量操作的方法,虽然效率不高,对于初学者来说还是好理解.由于刚开始学习写脚本,什么 puppt这样的高级工具还不会使用,就简单的利用shell脚本.ssh-keygen.expect来实现.希望能给各位带来帮助,不足之处还请留言 指出,大家共同进步. 首先,需要检查expect是否安装:rpm -qa|grep expect 然后,在操作机上创建公钥:ssh-key

Centos 6.4上面用Shell脚本一键安装mysql 5.6.15

Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machine=x86_64 else machine=i686 fi mysqlBasedir=/storage/server/mysql mysqlDatadir=${mysqlBasedir}/data/ mysqlLogdir=/storage/log/mysql mysqlUser=mysql mysqlGr

shell 脚本快速部署dhcp服务器!

服务器地址:192.168.1.110  网段:192.168.1.0  子网掩码:255.255.255.0  网关:192.168.1.254 [[email protected] ~]# cat dhcp.sh #!/bin/bash#auto deploy dhcp server for  192.168.1.0/24 netmask #this script need you have you yum repository echo "____________mount-cdrom__

Shell脚本快速部署Kubernetes集群系统

本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本. 运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog.51c

Shell脚本一键安装LNMP环境

https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则,稳定性,静态文件处理,内存消耗等方面表现了很强的优势.因此公司线上和测试环境的WEB服务大多数采用的是LNMP环境,经常要进行LNMP环境的搭建,下面是用SHELL脚本写的一键安装LNMP环境的脚本.1)系统环境介绍Centos 5.8 64位 (已测试)Nginx: nginx-1.4.1.ta

shell脚本一键安装MySQL5.5

执行脚本之前必须下载MySQL5.5二进制压缩安装包.我是事先下载好了的.下边执行shell脚本. #!/bin/bash #auth:taoyake /bin/mkdir -p /taokey/tools cd /taokey/tools/ tar -zxf mysql-5.5.32-linux2.6-x86_64.tar.gz  sleep 3 cp -R mysql-5.5.32-linux2.6-x86_64 /usr/local/mysql sleep 3 cd /usr/local/

用shell脚本自动化部署dhcp服务,加图文验证

自动化dhcp服务shell脚本如下: #vim auto_dhcp.sh #!/bin/bash read -p "please input your ip: " IP     #设置dhcp服务器ip read -p "please input your gw: " GW     #设置dhcp服务器网关 IPNET=$(echo $IP |awk -F. '{print $1"."$2"."$3}')  #取网段号  I