1.本项目采用Python Flask框架开发提供(应用管理,实例管理,Ansible管理,LDAP管理等相关功能) 后端项目配套前端项目为:op-devops-ui
一.插件python-jenkins bug修复
(1).插件版本 python-jenkins==1.5.0
二.接口文档;
1.基础环境介绍;
软件版本信息 | 系统/内核信息 | 项目目录功能介绍 |
---|---|---|
Python 3.6.8 | Centos 7.2 | tools jekins jobs相关xml配置 |
Flask1.0.2 | 3.10.0-862.6.3.el7.x86_64 | boot.py flask 程序启动入口文件 |
python-jekins1.5.0 | python jenkins sdk 插件 |
2.项目系统依赖包安装;
(1).centos 7x系统安装支持包;
yum -y install python36 mysql-devel libxml2* mysql initscripts python36-devel python36-pip python36-setuptools mysql-devel libxml2* mysql initscripts psmisc python-devel openldap-devel
(2).安装项目依赖包pip3方式;
/usr/local/bin/pip3.6 install --upgrade pip
/usr/local/bin/pip3.6 install --upgrade setuptools
/usr/local/bin/pip3.6 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
3.修改项目配置文件 (MYSQL文件) cat config.py #新建数据库并且授权应用程序访问 (如下:op-cicd-api-v2) SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]:3306/op-cicd-api-v2'
4.初始化数据库表结构设置授权管理员账号权限 操作流程:初始化数据库表---> 创建管理员账户---> 输入账号密码
$ python3.7 manage.py
usage: manage.py
command:
init_db
-- 初始化数据库
create_admin
-- 创建管理员账户
enable_admin
-- 启用管理员账户,用于登录失败次数过多账户被禁用时使用
5.登录获取应用token参数如下: token-api 接口文档:
- 输入用户密码登录获取token
请求URL:
http://devops-bmc-api.com/account/users/login/
请求方式:
- POST
格式:
- JSON
参数:
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
username | 是 | str | 系统授权用户名 |
password | 是 | str | 系统授权用户名 |
type | 是 | str | 类型分为: standard 系统设置用户 ldap 用户 |
请求示例
http://devops-bmc-api.com/account/users/login/
{
"username":"admin",
"password":"admin@123",
"type":"standard"
}
返回参数
http://devops-bmc-api.com/account/users/login/
{
"data": {
"is_supper": true,
"nickname": "管理员",
"permissions": [],
"token": "3df9a449d44f4183a45ba9a43cc61fbc" #Token 有过期时间每一次请求需要带token
},
"message": ""
}
6.获取应用信息实例接口 请求URL:
http://devops-bmc-api.com/account/users/login/
请求方式:
- GET
格式:
- JSON
参数:
header带Token --header
http://127.0.0.1:9000/app/api/v1?appname=op-nginx-api
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
group | 否 | str | 分组 |
appname | 否 | str | 应用名称 |
port | 否 | str | 应用端口 |
business | 否 | str | 业务线 |
page | 否 | int | 当前页面 |
page_size | 否 | int | 每页显示数据多少条 |
请求示例
curl --location --request GET 'http://127.0.0.1:9000/app/api/v1?appname=op-nginx-api' \
--header 'X-TOKEN: 3df9a449d44f4183a45ba9a43cc61fbc'
响应
{
"code": 0,
"total": 1,
"data": [
{
"id": 1,
"business": "op",
"group": "op",
"appname": "op-nginx-api",
"apptype": "python",
"giturl": "http://127.0.0.1:9000/ansible/host/v1",
"owner": "lijx",
"port": "2222",
"level": "低",
"used": "nginx运维测试",
"createtime": "2021-11-04 16:32:33"
}
],
"msg": "success",
"columns": [
{
"name": "group",
"alias": "小组名称"
},
{
"name": "appname",
"alias": "应用名称"
},
{
"name": "level",
"alias": "应用级别"
},
{
"name": "apptype",
"alias": "应用类型"
},
{
"name": "business",
"alias": "业务线"
},
{
"name": "giturl",
"alias": "git地址"
},
{
"name": "owner",
"alias": "应用负责人"
},
{
"name": "port",
"alias": "服务端口"
},
{
"name": "used",
"alias": "用途"
},
{
"name": "createtime",
"alias": "创建时间"
}
]
}