OPMS_v3

说明

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

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

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

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

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

效果图

【0】主页:

【1】用户管理:

【2】主机管理:

【3】故障和消息:

部署方法

环境安装

系统 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 即可

服务正常使用

用python开发的运维管理系统下载_GitHub - jiegangwu/OPMS_v3: 基于 Python 3.5 + Django 2.0 开发的运维管理系统...相关推荐

  1. python量化交易书籍推荐知乎_GitHub - XingkaiLiang/vnpy: 基于python的开源量化交易平台开发框架...

    vn.py - By Traders, For Traders. 简介 vn.py是基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统.2015年初项目启动时只是单纯的交易A ...

  2. 从零开始学python大数据与量化交易下载_GitHub - mignonwong/Python-100-Days-1: Python - 100天从新手到大师...

    Python - 100天从新手到大师 作者:骆昊 说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解.最近把基础部分的内容重 ...

  3. 从零开始学python大数据与量化交易下载_GitHub - zhaojie1126/Python-100-Days-1: Python - 100天从新手到大师...

    Python - 100天从新手到大师 作者:骆昊 说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解.最近把基础部分的内容重 ...

  4. 从零开始学python大数据与量化交易下载_GitHub - Lid23/Python-100-Days: Python - 100天从新手到大师...

    Python - 100天从新手到大师 作者:骆昊 说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解.最近把基础部分的内容重 ...

  5. python开发图片工具_工具|ImagePy:一款基于Python的高扩展性开源图像处理框架

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  6. python开发的著名软件公司_软件开发公司_软件外包_项目外包平台基于Python开发一个全文检索系统...

    基于Python开发一个全文检索系统.功能要求为: 使用全文检索引擎对文本进行检索.文本的格式为Word.PDF.TXT. 同时按数据域进行复合条件检索.数据域指文本对应的信息,例如创建人.文件编号. ...

  7. python零基础自学英语软件下载_GitHub - geniux-TI/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...

    PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...

  8. python+diango写酒店管理系统_课内资源 - 基于Python的Django框架实现的中式快餐厅管理信息系统网站...

    1 初步调研 随着餐饮业的连锁和国外餐饮巨头的进入,餐饮业的竞争将越来越激烈:要想在竞争中处于不败之地,必须在管理.服务等方面提高服务管理意识.面对当前餐饮业普遍的产业化程度低,管理手段.管理技术落后 ...

  9. python自动化测试实战 虫师_关于《Selenium3自动化测试实战--基于python语言》

    2016年1月,机缘巧合下我出版了<Selenium2自动化测试实战--基于python语言>这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目 ...

最新文章

  1. 7年,从“游戏少年”到大厂技术总监的逆袭之路
  2. 数组转json去除首尾引号_诞生于JavaScript,json的前世今生
  3. Tomcat 配置文件
  4. 【Vegas2008】7月19日-凉粉的做法
  5. 模板类的定义和实现可以分开吗?
  6. 鸿蒙os 芯片制程,华为Mate50将如期发布,屏下镜头+鸿蒙OS,再见iPhone12
  7. 深入C++面试题总结
  8. java对象序列化为字符串
  9. deian   授权用户 sudo权限
  10. 【linux高级程序设计】(第八章)进程管理与程序开发 4
  11. 用 Open Live Writer 来写 cnblog.com 博客
  12. mysql函数之一:INSTR、LOCATE、POSITION VS LIKE
  13. mysql 找表重复数据_mysql 数据表中查找重复记录
  14. lua学习 第一章语言要点
  15. 菜鸟的mybatis实战教程
  16. Axure8日期控件原型
  17. oracle水仙花,希腊神话中的水仙花和回声
  18. Delphi10.4使用FireDAC数据访问组件开发数据库软件学习开发教程(1)
  19. 音乐 组件 (音频, 视频)
  20. 电子技术部第四次培训总结

热门文章

  1. 非标准硬件控制之增加系统API
  2. Android之Camera预览
  3. .netcore 和 java_Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security
  4. 阿里云服务器如何快速搭建Docker环境
  5. 怎么单选_第一届化妆品分类大赛丨用过的化妆刷、过期的口红…该怎么扔
  6. idea中git替换,推送到新的github或者gitlab上面
  7. 将文字或txt转换成GBK或者UTF8编码
  8. java 多线程为什么不建议使用onstop onsuspend_java多线程stop,suspend使用代码实际例子...
  9. android 朋友圈弹出框,Android popupwidown 实现朋友圈评论弹窗显示在软键盘上面
  10. java语言实现任何一种排序_请用java语言编写排序程序。