之前写过mongodb的shell一键安装脚本,今日分享一下python的脚本。此脚本是离线环境下去安装5.0.8版本。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import time
def install():
"""
安装Mongodb
过程:
1、解压
tar -zxvf mongodb-linux-x86_64-rhel70-5.0.8.tgz
2、修改文件夹名字
3、添加环境变量
4、创建所有目录
mkdir -p /data/mongodb/{db,logs,conf}
5、创建配置文件
6、启动
mongod --config /data/mongodb/conf/mongodb.conf
:return:
"""
os.system("tar -zxvf ./mongodb-linux-x86_64-rhel70-5.0.8.tgz -C /usr/local/")
os.system("mv /usr/local/mongodb-linux-x86_64-rhel70-5.0.8/ /usr/local/mongo")
with open("/etc/profile.d/mongo.sh", "w+") as path_file:
lines = [
"export PATH=$PATH:/usr/local/mongo/bin\n"
]
path_file.writelines(lines)
os.system("mkdir -p /data/mongodb/{db,logs,conf}")
with open("/data/mongodb/conf/mongodb.conf", "w+") as config_file:
context = '''
# 数据存放目录
dbpath=/data/mongodb/db
# 存放日志路径, 要先把目录新建好
logpath=/data/mongodb/logs/mongodb.log
# 布尔值, 是否追加方式记录日志
logappend=true
# mongodb绑定的ip地址,127.0.0.1只允许本机访问,如果想让其他主机能访问请修改为0.0.0.0
bind_ip=0.0.0.0
# 端口号,默认为27017
port=27017
# 设置oplog的大小(MB)
oplogSize=10000
# 以后台方式运行进程
fork=true
# 启用日志文件,默认启用,生产环境强烈推荐打开
journal=true
'''
config_file.write(context)
os.environ['PATH'] = '%s:%s' % (os.environ['PATH'], '/usr/local/mongo/bin')
os.system("mongod --config /data/mongodb/conf/mongodb.conf")
def detect():
"""
检测是否安装成功
:return:
"""
time.sleep(5)
return True if os.popen("ps -ef|grep mongo").read().find(
"mongod") > 0 else False
def prompt_fail():
"""
安装失败后提示
:return:
"""
print """
\033[5;31;40m 很抱歉安装失败 \033[0m
"""
def prompt_success():
"""
安装成功后提示
:return:
"""
print """
\033[5;32;40m 恭喜mongo-5.0.8-linux安装成功! \033[0m
使用前注意:
执行: source /etc/profile 或【重新登录当前服务器】来重新加载环境变量
安装路径:/usr/local/mongo
环境变量配置:/etc/profile.d/mongo.sh
启动命令: mongod --config /data/mongodb/conf/mongodb.conf
停止命令:mongod --config /data/mongodb/conf/mongodb.conf --shutdown
端口号:27017
数据存放目录:/data/mongodb/db
存放日志路径: /data/mongodb/logs/mongodb.log
"""
if __name__ == '__main__':
install()
if detect():
prompt_success()
else:
prompt_fail()
说明:我们只需要把脚本和安装包上传至同目录下,再赋予执行X权限直接执行脚本即可。
为了保障数据库安全,我们在安装成功后须开启认证,必选先添加用户,配置文件中添加auth=true。
具体操作如下:
添加用户、安全认证
首先必须使用admin数据库,进行新用户授权。
MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。
输入以下命令:
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
授权成功后,关闭mongo服务:
mongod --config /data/mongodb/conf/mongodb.conf --shutdown
查看mongo服务进程,可看到服务已经成功停掉了。
然后需要到配置文件中修改配置,启用安全认证。
#开启认证,必选先添加用户
auth=true
最后开启mongo服务,进入数据库测试:
./mongod --config /usr/local/mongodb/etc/mongodb.conf
show dbs此时看不到任何数据库,说明我们的安全认证用户配置生效了。
首先使用use admin通过db.auth(‘root’,‘密码’) 输出1就是验证成功。
use admin
db.auth('root','123456')
在日常的运维过程中需要注意的几点是部署须采用非管理员权限,修改默认端口,且日常巡检创建只读的巡检账号即可,明天会分享这几点操作。