Skip to content
/ OPMS_v3 Public
forked from goer3/OPMS_v3

基于 Python 3.5 + Django 2.0 开发的运维管理系统

Notifications You must be signed in to change notification settings

hblava/OPMS_v3

This branch is 1 commit behind goer3/OPMS_v3:dev3.1.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dbeeb74 · Jun 25, 2019

History

25 Commits
Dec 24, 2018
Jun 25, 2019
Aug 23, 2018
Aug 23, 2018
Aug 23, 2018
May 7, 2019
Aug 23, 2018
Dec 24, 2018
Aug 23, 2018
Aug 23, 2018
Aug 23, 2018
Aug 23, 2018
May 7, 2019

Repository files navigation

OPMS_v3

说明

由于之前的 OPMS (姑且称作 v2 版本,因为 v1 版本太简单了就没分享出来)通用性其实不大,在换了新公司之后开始着手 OPMS v3 的开发

其实功能大致相同,这一次主要的更改还是进一步优化了页面的兼容性,优化了页面的显示效果,看起来舒服一些,删除了以前一些乱七八糟无用的东西

从过去从事运维工作的经验中总结了一些运维的需求,将其做成 WEB 版本,使运维工作平台化,尽量摆脱运维文档,记录 Excel,word 文档化

由于目前还处于开发阶段,很多功能还没做,目前先暂且就不上传了

先给一些效果图,有兴趣的可以看下,说不定我哪天就更新了!

效果图

【0】主页:

enter description here

【1】用户管理:

enter description here

【2】主机管理:

enter description here

enter description here

enter description here

enter description here

【3】故障和消息:

enter description here

enter description here

部署方法

环境安装

系统 CentOS 6 或者 7

下载 Python

https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

放到服务器上面编译安装

yum -y install zlib-devel bzip2-devel wget openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
cd /usr/local/src
xz -d Python-3.6.2.tar.xz
tar -xf Python-3.6.2.tar
cd Python-3.6.2
./configure --prefix=/usr/local/python-36 --enable-shared CFLAGS=-fPIC
make && make install

添加环境变量

echo 'export PATH=$PATH:/usr/local/python-36/bin' >> /etc/profile
source /etc/profile

替换旧版本

mv /usr/bin/python /tmp
ln -s /usr/local/python-36/bin/python3.6 /usr/bin/python

修改 yum

vim /usr/bin/yum

把第一行用的 Python 换成本机 /usr/bin 下面 python2.* (CentOS 6 和 7 带的 Python 版本不同)

修改库文件

cp /usr/local/python-36/lib/libpython3.6m.so.1.0 /usr/lib64/

查看当前版本

python -V

服务配置

新建目录,上传 opms 到该目录下

mkdir -p /opt/opms_website

修改 /opt/opms_website/opms/opms/settings.py 中的个人配置

  • 数据库配置

  • 系统发送邮件邮箱配置,需要一个开启 SMTP 的邮箱地址

  • 系统地址配置:

    • SERVER_URL:系统运行之后的访问地址
    • WEBSSH_IP:远程终端的服务地址,这里其实是本机的 IP地址
    • WEBSSH_PORT:不需要修改,如果真的要改,需要修改 extra_apps/webssh/main.py 中的端口,改为一致
  • 高德地图和城市:

    • GAODE_API_KEY:需要去高德地址开发者中心创建一个 KEY,很容易,这里用于首页的天气功能
    • CITY_ID:默认的城市 ID,在内网访问的时候提供城市天气支持
  • 开发者邮箱 DEVELPER_EMAIL_ADDRESS,默认为我得,首页反馈功能发送的消息最终发送给谁

安装依赖

cd /opt/opms_website/opms
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

同步数据库

python manage.py makemigrations
python manage.py migrate

创建超级用户,根据提示创建

python manage.py createsuperuser

安装环境

pip3 install uwsgi

创建文件,添加配置:/etc/uwsgi.ini

[uwsgi]
//运行端口号
socket = 127.0.0.1:9090
//主进程
master = true
//多站模式
vhost = true
//多站模式时不设置入口模块和文件
no-stie = true
//子进程数
workers = 2
reload-mercy = 10
//退出、重启时清理文件 
vacuum = true
max-requests = 1000   
limit-as = 512
buffer-sizi = 30000
//pid文件,用于下面的脚本启动、停止该进程
pidfile = /var/run/uwsgi.pid
daemonize = /var/log/uwsgi.log

创建启动脚本:/etc/init.d/uwsgi

#!/bin/bash

NAME='uwsgi'
DAEMON='uwsgi'
CONFIGFILE="/etc/$NAME.ini"
PIDFILE="/var/run/$NAME.pid"
SCRIPTNAME="/etc/init.d/$NAME"
   
do_start() {
$DAEMON $CONFIGFILE || echo -n "uwsgi  running" 
}

do_stop() {
    $DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
    rm -f $PIDFILE
    echo "$DAEMON STOPED."
}

do_reload() {
    $DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"
}

do_status() {
    ps aux|grep $DAEMON
}

case "$1" in
status)
    echo -en "Status $NAME: \n"
    do_status
;;
start)
    echo -en "Starting $NAME: \n"
    do_start
;;
stop)
    echo -en "Stopping $NAME: \n"
    do_stop
;; 
reload|graceful)
    echo -en "Reloading $NAME: \n"
    do_reload
;;
*)
    echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
    exit 3
;;
esac
exit 0

创建 nginx 虚拟主机

server {
    # 设置网站运行端口
    listen       10000;
    server_name  localhost;
   
    location / {
        include  uwsgi_params;
        # 必须和uwsgi中的设置一致
        uwsgi_pass  127.0.0.1:9090;
        # 入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一   层目录
        uwsgi_param UWSGI_SCRIPT opms.wsgi;
        # 项目根目录
        uwsgi_param UWSGI_CHDIR /opt/opms_website/opms;
        index  index.html index.htm;
        client_max_body_size 35m;
    }
    # 静态文件目录
    location /static/ {
        alias  /opt/opms_website/opms/static/;
        index  index.html index.htm;
    }
}

启动服务

/etc/init.d/uwsgi start

启动 nginx

启动 main.py

python /opt/opms_website/opms/extra_apps/webssh/main.py & >/dev/null

用之前创建的用户登录后台

http://xxxx:10000/admin

初始化

  • 找到公司表,添加公司
  • 然后部门表添加部门
  • 然后职位表,添加职位
  • 最后找到用户表,完善当前用户的一些用户信息

初始化平台

找到平台表,添加你们公司用到的一些平台,如 zabbix,jenkins 等,logo 路径为 opms/media/platform-management/logo 下面 添加时候,如 zabbix logo 只需要写 platform-management/logo/zabbix.png 即可

服务正常使用

http://xxxx:10000

About

基于 Python 3.5 + Django 2.0 开发的运维管理系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • PHP 0.1%