{"id":13638021,"url":"https://github.com/YoLoveLife/DevOps","last_synced_at":"2025-04-19T17:32:33.098Z","repository":{"id":17161999,"uuid":"81270738","full_name":"YoLoveLife/DevOps","owner":"YoLoveLife","description":":smiley:DevOps System - :heart:devEops:heart: - 开发自运维平台 - 运维体系解决方案，适用于多个应用环境的资产组织以及运维脚本的适配运行。","archived":true,"fork":false,"pushed_at":"2023-05-04T02:01:26.000Z","size":21760,"stargazers_count":660,"open_issues_count":15,"forks_count":263,"subscribers_count":48,"default_branch":"master","last_synced_at":"2024-08-03T01:12:03.103Z","etag":null,"topics":["ansible-api","cmdb","django","rest-framework"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YoLoveLife.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-02-08T00:48:50.000Z","updated_at":"2024-07-29T17:43:15.000Z","dependencies_parsed_at":"2022-08-21T02:10:43.886Z","dependency_job_id":"a0983cf6-0042-40eb-bbc2-9778f0c36ea6","html_url":"https://github.com/YoLoveLife/DevOps","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoLoveLife%2FDevOps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoLoveLife%2FDevOps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoLoveLife%2FDevOps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoLoveLife%2FDevOps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YoLoveLife","download_url":"https://codeload.github.com/YoLoveLife/DevOps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223805039,"owners_count":17205839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible-api","cmdb","django","rest-framework"],"created_at":"2024-08-02T01:00:38.668Z","updated_at":"2024-11-09T08:30:35.429Z","avatar_url":"https://github.com/YoLoveLife.png","language":null,"readme":"# 停止维护\n目前使用golang 作为后端微服务化重构了所有内容。 \n但是由于各种原因无法开源。\n\n\n\ndevEops :laughing: 开发自运维平台 :no_mouth: 后端\n================================\n[![Travis Build Status](https://travis-ci.org/YoLoveLife/DevOps.svg?branch=master)](https://travis-ci.org/YoLoveLife/DevOps)\n[![Github All Releases](https://img.shields.io/github/downloads/atom/atom/total.svg)](https://github.com/YoLoveLife/devEops/releases)\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.md) :yum: \u003c/br\u003e\n\nAuthor: [YoLoveLife.com](http://www.yolovelife.com) :ok_hand:  汪子哲 :fist: 徐晨亮 :facepunch: 张宇萍\u003c/br\u003e\n:heart: 感谢所有 :star: 我的人 你们是我前行的动力\u003c/br\u003e\n该项目为devEops的后端部分 前端部分请关注 :heart: [devEops-Web](https://github.com/YoLoveLife/devEopsWeb)\u003c/br\u003e\n\n运维体系解决方案(正在成长中)\u003c/br\u003e\n前后段分离啦！告别之前的Jinja2\u003c/br\u003e\n:muscle: 实践以资产、应用信息为中心的运维平台\u003c/br\u003e\ndjango模型 \u0026 rest-framework\u003c/br\u003e\n:muscle: 参考了诸多django项目 我的Django用的真的很棒\u003c/br\u003e\ntravis \u0026 django TestCase\u003c/br\u003e\n:muscle: 单元测试 测试不规范但是努力去做\n\n如果你关注：自动化运维、运维资源管理等内容  :star: 我,[分享](http://www.yolovelife.com)给其他的运维人员\u003c/br\u003e\n如果你关注：django开发、rest-framework等内容  :star: 我,[分享](http://www.yolovelife.com)给其他的开发者\u003c/br\u003e\n求求你们 :star: 我吧!!!   求求你们 :star: 我吧!!!   求求你们 :star: 我吧!!!\u003c/br\u003e\n\n*关于我开发中遇到的问题 我会写在issues当中供有需要的朋友 :mag: 查询*\u003c/br\u003e\n*这些问题都是在查询了诸多资料并亲身尝试大量解决方案 :grimacing: 最后得出的结论*\u003c/br\u003e\n*您可以在issues中搜索**helper**查看我写的相关问题 我写的很用心*\u003c/br\u003e\n*如果未找到您关注的问题或者您对我的项目有建议请在issues和我讨论 :heart: 期待收到您的信息*\u003c/br\u003e\n\n## Contents\n* [介绍](#introduce)\n* [平台一览](#looklike)\n* [如何安装](#howtoinstall)\n* [自运维功能实现](#whatcando)\n## \u003ca name=\"introduce\"\u003e 介绍 \u003c/a\u003e\n本开发自运维平台致力于IT资源信息的整合与自动化运维，通过服务、应用配置的信息整合来运维提供帮助。\u003c/br\u003e\ndevEops正在不断成长\n- 所有运维操作都基于信息整合的正确性和一致性(资产信息管理) :floppy_disk: \u003c/br\u003e\n- 对接VMware|Aliyun自动拉取信息入库资产 \u003c/br\u003e\n- :bar_chart: 提供各类信息统计图表(资产|运维)等\u003c/br\u003e\n- 基于Ansile的运维元操作|任务的定义\u003c/br\u003e\n- 基于WebSocket以及SSHProxy的工单操作 \u003c/br\u003e\n- 基于Django自带auth认证体系的资产与权限关联\u003c/br\u003e\n- 域名管理与解析信息查询与刷新\u003c/br\u003e\n- 详细权限操作，区分开发人员以及运维人员 \u003c/br\u003e\n\n## \u003ca name=\"looklike\"\u003e 平台一览 \u003c/a\u003e\n### :muscle: 登陆界面\n![LOGIN](img/login.png)\u003c/br\u003e\n\n### :muscle: 仪表盘界面\n :satisfied: 根据资源的检出位置|操作系统类型|运维操作 等图表化展现\u003c/br\u003e\n并且每周提供可供保存的静态页面的报告 **有！但是很丑** :grin:\n![DASHBOARD](img/dashboard.png)\n\n### :muscle: 资产管理\n :open_mouth: 资产根据来源(VMWARE|ALIYUN)入库 **运维人员进行归类**\n![GROUP](img/group.png)\u003c/br\u003e\n应用组可定义架构图 关联跳板机以及密钥 :key: \u003c/br\u003e\n**应用组可全局添加参数 该参数会注入运维操作中的变量中**\u003c/br\u003e\n![HOST](img/host.png)\n主机可以根据任意信息进行检索\u003c/br\u003e\n根据VMware|ALIYUN **API可进行详细信息(监控|配置)获取查看**\u003c/br\u003e\n\n### :muscle: 域名管理\n基于树结构的域名管理 :relieved: 定时解析域名 保证记录域名解析正确 **供正反向查询**\n![DNS](img/dns.png)\n\n### :muscle: 密钥管理\n**基于服务器端直接生成的ssh-rsa密钥** 私钥将会直接加密存储入数据库\u003c/br\u003e\n只有当您做运维操作|SSH连接的时候才会解析并且使用 :expressionless: \u003c/br\u003e\n![KEY](img/key.png)\n\n### :muscle: QR-Code\n基于Google-Authority的**二次验证** :confused: 目前用户体系中已经包含验证+生成\u003c/br\u003e\n![QRCODE](img/qrcode.png)\n\n### :muscle: 元操作及任务\n基于Ansible的数据模型 将用户的Ansible直接存储入数据库中\u003c/br\u003e\n当用户使用任务直接从CMDB中导出需要执行的主机列表以及参数列表 :smirk: **注入Ansible-API中**\u003c/br\u003e\n![META](img/meta.png)\n选择元操作所涉及的主机范围 :neutral_face: \u003c/br\u003e\n![META](img/meta_bt.png)\n选择某个应用组下的若干个元操作组成一个任务\u003c/br\u003e\n![MISSION](img/mission.png)\n\n### :muscle: 工单系统\n用户根据自身权限可以发布工单(涉及任务)进行执行\u003c/br\u003e\n![CODEWORK](img/work.png)\n选择工单后用户可以进行执行 :punch: 系统**建立websocket**将所有执行结果返回\n![RUN](img/run.png)\n\n## \u003ca name=\"howtoinstall\"\u003e 如何安装 \u003c/a\u003e\ndevEops依赖于python3.5、诸多python第三方模块、mysql数据库、redis缓存\u003c/br\u003e\n以下操作环境已经拥有python3.5、mysql数据库、redis缓存\n```bash\n$ cd path/to/project/folder/\n\n#安装部分依赖\nyum install openssl-devel python3-devel openldap-devel\n\n#安装python第三方库\n$ pip install -r requirements.txt\n\n#修改SSH的连接属性\n$ vim /etc/ssh/ssh_config **注意是ssh_config而非sshd_config**\n$ StrictHostKeyChecking no # 关闭指纹识别\n$ :wq\n\n#连接本地资源并创建数据表结构\n$ vim deveops/conf.py # 里面包含了所有连接数据以及定时任务 请填写您需要的数据内容\n$ python manage.py makemigrations\n$ python manage.py migrate\n$ # 删除表结构中的外键 减少运行过程中的锁争用问题、减少死锁概率、数据解耦\n$ select concat(\"alter table \",table_schema,\".\",table_name, \" drop foreign key \",CONSTRAINT_NAME,\";\") from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where table_schema='deveops_v3' and REFERENCED_TABLE_NAME is not null into outfile '/tmp/fk_1.sql';\n\n#启动服务\n$ python manage.py runserver \u0026\n#默认启动在8000端口 你可能需要一个nginx做Web服务器\n请务必配置一下Nginx代理来限制project/media下的访问权限 否则重要信息泄露的问题\n```\n## \u003ca name=\"whatcando\"\u003e 自运维功能实现 \u003c/a\u003e\n","funding_links":[],"categories":["Python","运维相关管理系统"],"sub_categories":["运维管理系统"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYoLoveLife%2FDevOps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYoLoveLife%2FDevOps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYoLoveLife%2FDevOps/lists"}