# easy-ops **Repository Path**: linzhengtian/easy-ops ## Basic Information - **Project Name**: easy-ops - **Description**: 简易配置管理平台,实现简易CMDB功能 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-12-29 - **Last Updated**: 2023-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # easy-ops 基于ubuntu16+python3.6+django2+ansible2.5+celery4.2 配置管理系统,改写自ops,目前实现功能:用户和用户组管理、日程管理、资产管理、集成ansible、简易堡垒机(主机分配(支持Linux和Windows)、用户分配、文件上传下载、配置禁用命令清单、操作录像回放功能)、数据库管理、celery任务编排、基于markdown编辑器的知识库支持实时预览和全局搜索结果高亮和文件共享中心。 ## 部署方式 使用docker进行部署,具体步骤: ``` docker run --name easy-ops-ubuntu18 -itd -p 8080:8080 q907305684/easy-ops /bin/bash # 根据容器IP和本地服务器信息修改nignx配置文件,拷贝至/etc/nginx/nginx.conf docker exec -it easy-ops-ubuntu18 cp *** *** docker exec -i easy-ops-ubuntu18 /bin/bash << 'EOF' cd /home/ops;git pull;sh /home/ops/restart.sh exit EOF ``` 如果发现部分服务启动失败,请进入容器执行重启脚本sh /home/ops/restart.sh;本地登录地址:localhost:8080,管理员账号/密码:admin/admin123 ## 安装 一、安装python3.6 > 建议安装虚拟环境,具体步骤参考 二、安装模块 ``` 解压ops.zip 进入工程 解压extra_apps.zip media.zip 创建logs目录 ``` 三、安装mysql > 建议MySQL5.6,安装过程略 ``` mysql -uroot -p mysql>grant all privileges on *.* to 'root'@'%' identified by 'admin'; mysql>flush privileges; mysql>create database ops DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; mysql>grant all privileges on ops.* to 'ops'@'%' identified by '123456'; mysql>flush privileges; mysql>grant all privileges on ops.* to 'ops'@'localhost' identified by '123456'; mysql>flush privileges; mysql>quit; ``` 四、安装redis(略) 五、安装mongodb(略) ``` # 配置 mongo # 创建管理员用户 use admin db.createUser( {user: "admin",pwd: "admin",roles: [ { role: "root", db: "admin" } ]}) # 创建records库 use records db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "dbOwner", db: "records" } ]}) # 认证方法 use records db.auth('admin', '123456') # 查看配置文件路径 db._adminCommand( {getCmdLineOpts: 1}) #修改配置文件 修改 auth=True 注释 bind_ip = 127.0.0.1 开发端口 port 重启 ``` 六、配置celery后台运行,或查看[官网](http://docs.celeryproject.org/en/latest/index.html) ``` cp conf/celeryd.conf /etc/default/celeryd # 将配置文件里的内容按照实际情况更改 cp conf/celeryd.server /etc/init.d/celeryd cp conf/celerybeat.server /etc/init.d/celerybeat /etc/init.d/celeryd start ##如果出现celeryd无法启动,则添加环境变量:export C_FORCE_ROOT="true" /etc/init.d/celerybeat start export PYTHONOPTIMIZE=1 # 解决 celery 不允许创建子进程的问题,全局启动命令和启动命令都要添加 ``` 七、配置获取主机内存脚本 ``` 安装sshpass ansible-config #修改ansible配置 cp conf/get_mem.py /path/to/your ansible python module location/modules ##可以使用ansible --version命令查看路径 ``` 八、安装Guacamole用于支持web端登录Windows服务器以及开启VNC的服务器(可选) 安装步骤建议参考官方文档: 安装完成后,修改settings.py中的 GUACD_HOST和 GUACD_PORT,改为guac服务启动后监听的地址和端口 功能实现参考:以及 九、启动服务 > 需要将Ops目录中的settings.py celery.py按照实际情况更改 ``` python manage.py makemigrations users assets dbmanager fort plan projs task wiki python manage.py migrate python manage.py createsuperuser python manage.py runserver 0.0.0.0:8000 ``` 十、将dependencies里面包解压覆盖掉安装的依赖包 十一、用到的一些开源产品 * 后端: * channels:用于实现websocket长连接: * django-rest-framework:用于编写API: * ansible:用于批量管理机器的工具: * celery:用于执行异步任务: * django-celery-beat,用于监测celery定时任务: * django-celery-results:用于存储celery执行结果: * paramiko:用于远程连接Linux服务器: * Pillow:用于图像处理: * pyguacamole:连接Guacamole服务器的客户端: * PyMySQL:处理mysql: * requests:用于HTTP请求: * xlrd,xlwt:excel处理: * 前端: * AdminLTE:后台管理的前端框架: * ace:用于生成前端编辑器: * bootstrap-fileinput:基于bootstrap的文件上传插件: * echarts:用于图表展示: * highlight:用于代码高亮: * jquery-confirm:基于jquery的确认modal: * jsplumb:用于生成流程图的jquery插件: * modaal:生成modal的插件: * parsley:处理表单验证的插件: * zTree_v3:用于生成树形结构的jquery插件: * asciinema-player:用于播放webssh录像的插件: * guacamole-client:用于播放rdp和vnc录像的插件: * xterm:用于前端生成webssh界面: * dataTables:用于生成表格的插件: * fullCalendar:用于日程管理:https://github.com/fullcalendar/fullcalendar