/swallow

一个后端基于django和DjangoRestFramework,前端基于vue和element-ui实现的CMBD运维平台

Primary LanguagePythonMIT LicenseMIT

swallow

swallow是一个后端基于djangoDjangoRestFramework,前端基于vueelement-ui实现的应用,主要面向linux运维工程师使用,管理linux资产信息。

演示

demo

功能特性

  • 服务器信息自动定时采集
  • celery异步队列
  • RBAC基于角色的权限访问控制
  • RESTful API

技术栈

后端

前端

前序准备

你需要在本地linux服务器安装PythonMariaDBRedisnodejsgitAnsible

开发环境部署

安装

# 克隆项目
git clone git@github.com:JiaJunZz/Swallow.git

# 进入项目目录
cd Swallow/

# 安装后端依赖
pip install -r requirements.txt

# 进入前端目录
cd web/

# 安装前端依赖
npm install

# 如果node-sass安装失败再次执行
npm install node-sass --unsafe-perm

配置

配置文件Swallow/swallow/settings.py,修改连接数据库server的配置信息

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'swallow',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}
# celery中间件 redis://redis服务所在的ip地址:端口/数据库号
BROKER_URL = 'redis:/127.0.0.1:6379'

# celery结果返回,可用于跟踪结果
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379'

# 管理用户
REQUEST_USERNAME = 'admin'

# 管理员用户密码
REQUEST_PASSWORD = 'admin123456'

# 获取token的url
REQUEST_TOKEN_URL = 'http://127.0.0.1:8000/api-token-auth/'

# 服务器数据自动提交的API接口
REQUEST_AUTOSERVER_URL = 'http://127.0.0.1:8000/serverauto/'

配置文件 swallow/web/config/dev.env.js,修改连接后端的IP地址和端口

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  BASE_API: '"http://127.0.0.1:8000"',
})

配置文件 swallow/web/config/index.js,修改浏览器登录的地址

module.exports = {
  dev: {
    host: '192.168.123.173',
    port: 9528,
      }

修改配置文件 /etc/ansible/hosts,用于自动收集服务器信息

[swallow_servers]
192.168.123.168 ansible_python_interpreter="/usr/bin/python2"

启动程序

cd swallow
# 迁移数据库,如果出现问题可以删除migrations/下migrations的py代码
python manage.py makemigrations
python manage.py migrate
# 创建后台管理员用户
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000
celery -A swallow worker -B -l INFO
cd web/
npm run dev

浏览器登录

http://192.168.123.173:9528/#/login

API router

http://127.0.0.1:8000

router

API Doc

http://127.0.0.1:8000/docs

apidoc

Browsers support

Modern browsers and Internet Explorer 10+.

IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
IE10, IE11, Edge last 2 versions last 2 versions last 2 versions

License

MIT license.