{"id":14128617,"url":"https://github.com/hequan2017/autoops","last_synced_at":"2025-04-05T04:14:06.852Z","repository":{"id":24534377,"uuid":"101852470","full_name":"hequan2017/autoops","owner":"hequan2017","description":"linux资产管理,cmdb,django, webssh,运维管理平台，数据库操作平台   本项目已停止开发！因长时间未对代码进行维护，可能会造成项目在不同环境上无法部署、运行BUG等问题，请知晓！项目仅供参考！","archived":false,"fork":false,"pushed_at":"2023-08-14T21:46:18.000Z","size":23523,"stargazers_count":358,"open_issues_count":2,"forks_count":198,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-03-29T03:09:33.084Z","etag":null,"topics":["celery","cmdb","demo","devops","django","django2","inception","linux","mysql","nginx","ops","python","python3","shell","supervisor","tornado","uwsgi","webconsole","webssh"],"latest_commit_sha":null,"homepage":"https://github.com/hequan2017/autoops/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hequan2017.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-30T07:43:56.000Z","updated_at":"2025-01-03T21:46:25.000Z","dependencies_parsed_at":"2024-05-02T03:20:01.678Z","dependency_job_id":null,"html_url":"https://github.com/hequan2017/autoops","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/hequan2017%2Fautoops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fautoops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fautoops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fautoops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hequan2017","download_url":"https://codeload.github.com/hequan2017/autoops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284951,"owners_count":20913704,"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":["celery","cmdb","demo","devops","django","django2","inception","linux","mysql","nginx","ops","python","python3","shell","supervisor","tornado","uwsgi","webconsole","webssh"],"created_at":"2024-08-15T16:01:56.770Z","updated_at":"2025-04-05T04:14:06.826Z","avatar_url":"https://github.com/hequan2017.png","language":"Python","readme":"# AutoOps\n\n\n\n\n## 项目停止\n本项目已停止开发！因长时间未对代码进行维护，可能会造成项目在不同环境上无法部署、运行BUG等问题，请知晓！项目仅供参考！\n\n\n因本人工作原因，此项目以后不提供更新及维护，项目仅供参考。\n\n##  介绍\n\nAutoOps 是一款基于 2.0 版本django 开发的，主要面向linux运维工程师使用,管理linux资产信息，Mysql数据库，批量执行命令、脚本,获取流量图，web ssh管理，技术文档等功能。\n\n欢迎大家测试使用，有问题可反馈。\n\n\n##  Demo\n\n  -  交流群号： `620176501`   欢迎交流！  \n  -  博客:    `http://hequan.blog.51cto.com/`\n  -  github:  `https://github.com/hequan2017/autoops/`\n  -  码云:    `https://gitee.com/hequan2020/autoops`\n\n\n##  架构图\n\n \n![DEMO](static/demo/autoops.png)\n\n\n## 更新记录  \n  -  1.8    最后一次更新， 修改ansible api，以支持playbook，需要自己测试。\n  -  1.7.8  更换后台为xadmin\n     -  注意： xadmin暂时不支持 对象权限组件django-guardian,需要设置的时候，可以登陆dadmin（为默认admin）\n     -  注意： xadmin  认不到 tasks任务的名字，需要的名字如下：\n        -  tasks.task.任务\n        -  tasks.task.monitor_job    #定时获取CPU、内存 、流量\n        -  tasks.task.clean_history_host_monitor  #清除1周前的主机性能历史记录数据\n        -  tasks.task.cmd_job         #可定时执行命令，输入 host,命令  即可。\n        \n  -  1.7.7   更换webssh启动方式。\n  -  1.7.6  代码库功能上线，带分发。\n  -  1.7.4  更新ansible版本。 增强命令行 功能。具体方法参考ansible 模块。 \n  -  1.6    Mysql数据库操作: 自动审核 + 执行 （目前只适用于Mysql）  \n  -  1.4    更新django 为2.0\n  -  1.3    新增 技术文档 板块。\n  -  1.2    权限管理完善。 增加附件上传下载功能。\n  -  1.1.5  新增 权限管理。 根据后台用户组，区分不同权限。如：在后台先建一个 测试机 组，把普通用户加入到此组。在前端添加资产时，在产品线中会出现测试机 。 测试机组下的用户 只管管理测试机产品线的资产。             \n  -  1.1    新增 平台登录记录、web登录记录、密码修改等功能。\n---\n\n##  功能\n  - asset资产\n    - api     `http://114.115.132.147:8003/asset/api/asset.html`\n    - 自动获取服务器信息\n    - 全部导出\n    - CPU 内存 流量图\n  - names 用户（预留模块）\n      -  加密解密   password_crypt.py          ## 如果是自己的生产环境，建议更换里面的密钥。 \n  - tasks任务 \n     - 命令行\n     - 工具  \n        - shell \n        - python\n        \n  - webssh  登陆\n     -  借鉴的 github上的  https://github.com/huashengdun/webssh\n  \n  - library 技术文档 (真正运维人员的管理平台，自带技术文档，有问题不用再去别的地方找)\n    - DjangoUeditor 富文本编辑器\n    \n  -  代码库\n     - 代码库\n     - 主机分发\n    \n  - 数据库自动审核-- 命令执行   回滚\n     - Inception \n     \n  - 后台管理\n    - admin     \n    -  根据后台用户组进行区分。admin有最高权限。\n    -  例如：新建  运维组、开发组 ，    新建 运维组 里面的  hequan 账号\n    -  那么  hequan 只能看见 运维组下面的服务器、数据库，执行工具也只能选择 运维组的。 hequan 无法添加服务器、数据库。\n   \n\n## 环境\n\n   * Python 3.6.4         #可以参考   `script/install_python3.6.4.py`\n   * Django 2.0\n   * Python 2.7            (用来启动 supervisor)\n   * Centos 7.4\n   \n   * supervisor       管理无法\n     * uwsgi                    web服务启动\n     * webssh                \n     * celeryd                 队列任务\n     * celerybeat\n     * celerycam\n     * celeryflower\n     * Inception             mysql 数据库审核\n\n---\n   \n## 安装 \n\n   * 开发环境部署：\n   \n   1. 下载，安装基本环境,安装目录为/opt下，如是其他目录，请修改supervisor.conf中的相应设置即可。\n \n```bash\ncd /opt\nyum install git   sshpass    redis  -y \nsystemctl enable redis.service \nsystemctl start  redis.service \ngit  clone  https://github.com/hequan2017/autoops.git\n    \ncd   autoops/\npip3 install -r requirements.txt       \n\ncd /usr/local/src\nwget https://codeload.github.com/sshwsfc/xadmin/zip/django2\nunzip django2\ncd xadmin-django2/\npython setup.py  install\n\n``` \n\n   添加的资产里面,  建议执行  ` yum install  ipmitool     dmidecode   -y  `以获取更多信息\n   \n   2. 安装   `supervisor  `\n \n```bash\nchmod +x    /opt/autoops/script/inception/bin/*\npip2   install    supervisor          ## 没有pip2 版本的 ，可以参考 script/install_pip2.sh\necho_supervisord_conf    \u003e /etc/supervisord.conf \nmkdir /etc/supervisord.d/\n     \nvim /etc/supervisord.conf      ##进行相关设置\n         \n[inet_http_server]             ##HTTP登录账号密码\nport=0.0.0.0:9001 \nusername=user\npassword=321\n\n[include]\nfiles = /etc/supervisord.d/*.conf\n```\n```bash\ncp   /opt/autoops/script/supervisor.conf               /etc/supervisord.d/        \n```\n    \n \n\n###  环境设置\n\n  * 数据库: 请修改 `autops/settings`文件, 如果没有mysql，请选择上面那种。如果有，则可以启用mysql，设置相关连接地址。\n     关于mysql安装方法，可参考我的博客 `http://hequan.blog.51cto.com/5701886/1982428`\n\n\n```djangotemplate\nDATABASES = {\n     'default': {\n        'ENGINE': 'django.db.backends.sqlite3',\n         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),\n     }\n }\n \n \nDATABASES = {\n       'default': {\n           'ENGINE': 'django.db.backends.mysql',\n           'NAME': 'autoops',\n           'USER': 'root',\n           'PASSWORD': '123456',\n           'HOST': '192.168.10.24',\n           'PORT': '3306',\n        }\n}\n``` \n  * 修改 autoops/settings 自定义参数\n  \n```djangotemplate\nDEBUG = True                            ## 实际生产环境使用，请关闭    False\n\nBROKER_URL = 'redis://127.0.0.1:6379/0'                  ##Redis地址,一般情况不用修改\n\n\nWebssh_ip = '114.115.132.147'      ##WebSSH 软件的 访问IP,也就是本机外网IP，改这个地方就好了。\nWebssh_port='9000'             ##端口号,默认即可。如有修改，需要修改  webssh/main.py文件 define('port', default=9000, help='listen port', type=int)\n\nInception_ip = '127.0.0.1'         ## 此为 Inception 软件地址,  默认为本机地址，一般不用修改\nInception_port = '6669'            ## 此为 Inception 软件端口号\n\n\ninception_remote_system_password='654321'    ## 设置回滚备份（mysql）服务器相关参数，并同步修改一下 script/inc.cnf 里面的设置\ninception_remote_system_user='root'\ninception_remote_backup_port='3306'\ninception_remote_backup_host='192.168.10.100'   ##设置备份数据库地址\n```  \n\n  * 修改一个文件 `/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py`   注释35 36 以下两行,找不到可以忽略。\n  \n```python  \nif version \u003c (1, 3, 3):\n    raise ImproperlyConfigured(\"mysqlclient 1.3.3 or newer is required; you have %s\" % Database.__version__)\n```\n\n  * 由于Inception 并不原生支持pymysql，所以需更改pymysql相关源码。\n  \n在script/  文件夹下有已经修改的connections.py 和 cursors.py 直接替换即可。  \n替换位置为  `/usr/local/lib/python3.6/site-packages/pymysql`  下的 `connections.py 和 cursors.py `   两个文件\n注:  如果想知道，修改了哪里，可参考script/备注。\n\n```bash\ncp /opt/autoops/script/connections.py   /usr/local/lib/python3.6/site-packages/pymysql/connections.py\ncp /opt/autoops/script/cursors.py    /usr/local/lib/python3.6/site-packages/pymysql/cursors.py \n```\n \n  * 初始化数据库（可删除文件夹的 db.sqlite3）\n  \n```bash\npython manage.py makemigrations\npython manage.py  migrate\npython manage.py  createsuperuser             ##创建管理员\n``` \n  * autoops 登陆的端口号 在 supervisor.conf  里面 第2行  ,默认是   0.0.0.0:8003 。如有修改端口号，请把supervisor 里的uwsgi  服务关闭,再启动。             \n      \n  * 启动supervisor进程管理  \n```bash\n/usr/bin/python2.7   /usr/bin/supervisord -c /etc/supervisord.conf\n``` \n\n\n加到linux 开机启动里面  `chmod +x  /etc/rc.d/rc.local `  把上面的命令放到这个文件里面  \n  \n  \n  * 启动: 统一用supervisor 管理进程,  打开   0.0.0.0:9001  账号user  密码321   进入进程管理界面，管理uwsgi,webssh,celery,Inception 等启动关闭。\n     ![DEMO](static/demo/14.png)\n\n\n  * 登陆后台，设置定时获取主机图，设置数据中心、用户组。\n  \n  \n  * 设置定时获取主机信息任务。 先创建执行的时间频率，再创建任务，创建后，观察队列任务是否执行成功。   如不成功，重启所有supervisor中的  celery服务。\n![DEMO](static/demo/9.png)\n\n\n\n\n\n---\n\n###  开发设置\n\n  * 如果想在windows 下的 pycharm打开， 先pip 安装好模块，ansbile无法装在windows上，忽略掉。然后注释下面的代码。  注释xadmin\n  \n  ```djangotemplate\nasset/views.py\nfrom   tasks.ansible_2420.runner import AdHocRunner, CommandRunner\nfrom  tasks.ansible_2420.inventory import BaseInventory\n\ntasks/views.py   \nfrom   tasks.ansible_2420.runner import AdHocRunner, CommandRunner\nfrom  tasks.ansible_2420.inventory import BaseInventory\n\nrelease/views.py\nfrom   tasks.ansible_2420.runner import AdHocRunner\nfrom  tasks.ansible_2420.inventory import BaseInventory\n```\n    \n   \n###  生产环境   \n   \n  * 如果想在生产环境部署、启动, 用nginx去处理。 可以参考   `http://hequan.blog.51cto.com/5701886/1982769` , 请把`supervisor.conf` 中 关于uwsgi的部分删除掉, \n用以下方式控制UWSGI的启动 关闭.\n\n```bash\nuwsgi  --ini    /opt/autoops/script/uwsgi.ini     # 启动uwsgi配置  也可以把这个命令写到开机的文件里面\nuwsgi  --stop   /opt/autoops/script/uwsgi.pid    # 关闭uwsgi\nuwsgi  --reload  /opt/autoops/script/uwsgi.pid   #重新加载\n```\n \n* nginx 配置文件修改如下。 此方法也要启动 uwsgi。\n\n```bash\nroot         /opt/autoops;\n   \n   \n    location / {\n        include uwsgi_params;\n        uwsgi_connect_timeout 30;\n        uwsgi_pass unix:/opt/autoops/script/uwsgi.sock;\n        \n    }\n    \n    location /static/   {\n            alias  /opt/autoops/static/;\n            index  index.html index.htm;\n    }     \n```\n\n\n###   截图\n![DEMO](static/demo/13.png)\n![DEMO](static/demo/12.png)\n![DEMO](static/demo/1.png)\n![DEMO](static/demo/4.png)\n![DEMO](static/demo/5.png)\n![DEMO](static/demo/7.png)\n\n---\n### 贡献者\n\n#### 1.0\n- 何全\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhequan2017%2Fautoops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhequan2017%2Fautoops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhequan2017%2Fautoops/lists"}