AutoOps 1.8 版本-阿里云开发者社区

开发者社区> 余二五> 正文

AutoOps 1.8 版本

简介:
+关注继续查看

AutoOps

AutoOps 是一款基于 2.0 版本django 开发的,主要面向linux运维工程师使用,管理linux资产信息,Mysql数据库,批量执行命令、脚本,获取流量图,web ssh管理,技术文档等功能。

欢迎大家测试使用,有问题可反馈。

Demo

  • 地址: http://114.115.132.147:8003 账号admin 密码1qaz.2wsx

  • 交流群号: 620176501 欢迎交流!

  • 后台地址 http://114.115.132.147:8003/admin 账号admin 密码1qaz.2wsx

  • 博客: http://hequan.blog.51cto.com/

  • github: https://github.com/hequan2017/autoops/

  • 码云: https://gitee.com/hequan2020/autoops

架构图

DEMO

更新记录

  • 1.8预览版 加强mysql查询展示功能。

  • 1.7.8 更换后台为xadmin

    • tasks.task.任务

    • tasks.task.monitor_job #定时获取CPU、内存 、流量

    • tasks.task.clean_history_host_monitor #清除1周前的主机性能历史记录数据

    • tasks.task.cmd_job #可定时执行命令,输入 host,命令 即可。

    • 注意: xadmin暂时不支持 对象权限组件django-guardian,需要设置的时候,可以登陆dadmin(为默认admin)

    • 注意: xadmin 认不到 tasks任务的名字,需要的名字如下:

  • 1.7.7 更换webssh启动方式。

  • 1.7.6 代码库功能上线,带分发。

  • 1.7.4 更新ansible版本。 增强命令行 功能。具体方法参考ansible 模块。

  • 1.6 Mysql数据库操作: 自动审核 + 执行 (目前只适用于Mysql)

  • 1.4 更新django 为2.0

  • 1.3 新增 技术文档 板块。

  • 1.2 权限管理完善。 增加附件上传下载功能。

  • 1.1.5 新增 权限管理。 根据后台用户组,区分不同权限。如:在后台先建一个 测试机 组,把普通用户加入到此组。在前端添加资产时,在产品线中会出现测试机 。 测试机组下的用户 只管管理测试机产品线的资产。

  • 1.1 新增 平台登录记录、web登录记录、密码修改等功能。


功能

  • asset资产

    • api http://114.115.132.147:8003/asset/api/asset.html

    • 自动获取服务器信息

    • 全部导出

    • CPU 内存 流量图

  • names 用户(预留模块)

    • 加密解密 password_crypt.py ## 如果是自己的生产环境,建议更换里面的密钥。

  • tasks任务

    • shell

    • python

    • 命令行

    • 工具

  • webssh 登陆

  • library 技术文档 (真正运维人员的管理平台,自带技术文档,有问题不用再去别的地方找)

    • DjangoUeditor 富文本编辑器

  • 代码库

    • 代码库

    • 主机分发

  • 数据库自动审核-- 命令执行 回滚

    • Inception

  • 后台管理

    • admin

    • 根据后台用户组进行区分。admin有最高权限。

    • 例如:新建 运维组、开发组 , 新建 运维组 里面的 hequan 账号

    • 那么 hequan 只能看见 运维组下面的服务器、数据库,执行工具也只能选择 运维组的。 hequan 无法添加服务器、数据库。

环境

  • Python 3.6.4 #可以参考 script/install_python3.6.4.py

  • Django 2.0

  • Python 2.7 (用来启动 supervisor)

  • Centos 7.4

  • supervisor 管理无法

    • uwsgi web服务启动

    • webssh

    • celeryd 队列任务

    • celerybeat

    • celerycam

    • celeryflower

    • Inception mysql 数据库审核


安装

  • 开发环境部署:

  1. 下载,安装基本环境,安装目录为/opt下,如是其他目录,请修改supervisor.conf中的相应设置即可。

cd /opt yum install git   sshpass    redis  -y  systemctl enable redis.service  systemctl start  redis.service  git  clone  https://github.com/hequan2017/autoops.git      cd   autoops/ pip3 install -r requirements.txt        cd /usr/local/src wget https://codeload.github.com/sshwsfc/xadmin/zip/django2 unzip django2 cd xadmin-django2/ python setup.py  install

添加的资产里面, 建议执行 yum install ipmitool dmidecode -y以获取更多信息

  1. 安装 supervisor

chmod +x    /opt/autoops/script/inception/bin/* pip2   install    supervisor          ## 没有pip2 版本的 ,可以参考 script/install_pip2.sh echo_supervisord_conf    > /etc/supervisord.conf  mkdir /etc/supervisord.d/       vim /etc/supervisord.conf      ##进行相关设置           [inet_http_server]             ##HTTP登录账号密码 port=0.0.0.0:9001  username=user password=321 [include] files = /etc/supervisord.d/*.conf
cp   /opt/autoops/script/supervisor.conf               /etc/supervisord.d/

环境设置

  • 数据库: 请修改 autops/settings文件, 如果没有mysql,请选择上面那种。如果有,则可以启用mysql,设置相关连接地址。 关于mysql安装方法,可参考我的博客 http://hequan.blog.51cto.com/5701886/1982428

DATABASES = {      'default': {         'ENGINE': 'django.db.backends.sqlite3',          'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),      }  }     DATABASES = {        'default': {            'ENGINE': 'django.db.backends.mysql',            'NAME': 'autoops',            'USER': 'root',            'PASSWORD': '123456',            'HOST': '192.168.10.24',            'PORT': '3306',         } }
  • 修改 autoops/settings 自定义参数

DEBUG = True                            ## 实际生产环境使用,请关闭    False BROKER_URL = 'redis://127.0.0.1:6379/0'                  ##Redis地址,一般情况不用修改 Webssh_ip = '114.115.132.147'      ##WebSSH 软件的 访问IP,也就是本机外网IP,改这个地方就好了。 Webssh_port='9000'             ##端口号,默认即可。如有修改,需要修改  webssh/main.py文件 define('port', default=9000, help='listen port', type=int) Inception_ip = '127.0.0.1'         ## 此为 Inception 软件地址,  默认为本机地址,一般不用修改 Inception_port = '6669'            ## 此为 Inception 软件端口号 inception_remote_system_password='654321'    ## 设置回滚备份(mysql)服务器相关参数,并同步修改一下 script/inc.cnf 里面的设置 inception_remote_system_user='root' inception_remote_backup_port='3306' inception_remote_backup_host='192.168.10.100'   ##设置备份数据库地址
  • 修改一个文件 /usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py 注释35 36 以下两行,找不到可以忽略。

if version < (1, 3, 3):     raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
  • 由于Inception 并不原生支持pymysql,所以需更改pymysql相关源码。

在script/ 文件夹下有已经修改的connections.py 和 cursors.py 直接替换即可。
替换位置为 /usr/local/lib/python3.6/site-packages/pymysql 下的 connections.py 和 cursors.py 两个文件 注: 如果想知道,修改了哪里,可参考script/备注。

cp /opt/autoops/script/connections.py   /usr/local/lib/python3.6/site-packages/pymysql/connections.py cp /opt/autoops/script/cursors.py    /usr/local/lib/python3.6/site-packages/pymysql/cursors.py
  • 初始化数据库(可删除文件夹的 db.sqlite3)

python manage.py makemigrations python manage.py  migrate python manage.py  createsuperuser             ##创建管理员
  • autoops 登陆的端口号 在 supervisor.conf 里面 第2行 ,默认是 0.0.0.0:8003 。如有修改端口号,请把supervisor 里的uwsgi 服务关闭,再启动。

  • 启动supervisor进程管理

/usr/bin/python2.7   /usr/bin/supervisord -c /etc/supervisord.conf

加到linux 开机启动里面 chmod +x /etc/rc.d/rc.local 把上面的命令放到这个文件里面

  • 启动: 统一用supervisor 管理进程, 打开 0.0.0.0:9001 账号user 密码321 进入进程管理界面,管理uwsgi,webssh,celery,Inception 等启动关闭。 DEMO

  • 登陆后台,设置定时获取主机图,设置数据中心、用户组。

  • 设置定时获取主机信息任务。 先创建执行的时间频率,再创建任务,创建后,观察队列任务是否执行成功。 如不成功,重启所有supervisor中的 celery服务。 DEMO


开发设置

  • 如果想在windows 下的 pycharm打开, 先pip 安装好模块,ansbile无法装在windows上,忽略掉。然后注释下面的代码。 注释xadmin

asset/views.py from   tasks.ansible_2420.runner import AdHocRunner, CommandRunner from  tasks.ansible_2420.inventory import BaseInventory tasks/views.py    from   tasks.ansible_2420.runner import AdHocRunner, CommandRunner from  tasks.ansible_2420.inventory import BaseInventory release/views.py from   tasks.ansible_2420.runner import AdHocRunner from  tasks.ansible_2420.inventory import BaseInventory

生产环境

  • 如果想在生产环境部署、启动, 用nginx去处理。 可以参考 http://hequan.blog.51cto.com/5701886/1982769 , 请把supervisor.conf 中 关于uwsgi的部分删除掉, 用以下方式控制UWSGI的启动 关闭.

uwsgi  --ini    /opt/autoops/script/uwsgi.ini     # 启动uwsgi配置  也可以把这个命令写到开机的文件里面 uwsgi  --stop   /opt/autoops/script/uwsgi.pid    # 关闭uwsgi uwsgi  --reload  /opt/autoops/script/uwsgi.pid   #重新加载
  • nginx 配置文件修改如下。 此方法也要启动 uwsgi。

root         /opt/autoops;             location / {         include uwsgi_params;         uwsgi_connect_timeout 30;         uwsgi_pass unix:/opt/autoops/script/uwsgi.sock;              }          location /static/   {             alias  /opt/autoops/static/;             index  index.html index.htm;     }

截图

DEMODEMODEMODEMODEMODEMO


贡献者

1.0

  • 何全










本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1937439,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2962 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11630 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10883 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12076 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11818 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4660 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7502 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4506 0
+关注
20382
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载