swallow
swallow是一个后端基于django和DjangoRestFramework,前端基于vue和element-ui实现的应用,主要面向linux运维工程师使用,管理linux资产信息。
演示
功能特性
- 服务器信息自动定时采集
- celery异步队列
- RBAC基于角色的权限访问控制
- RESTful API
技术栈
后端
前端
前序准备
你需要在本地linux服务器安装Python、MariaDB、Redis、nodejs、git、Ansible
开发环境部署
安装
# 克隆项目
git clone [email protected]: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
API Doc
http://127.0.0.1:8000/docs
Browsers support
Modern browsers and Internet Explorer 10+.
IE / Edge | Firefox | Chrome | Safari |
---|---|---|---|
IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
License
MIT license.