目标概述
从工单系统/手动输入获取单子信息,自动生成和下发配置。内容包括交换机端口配置,F5/GTM配置,BGP配置;
系统组件
使用django平台,提供用户输入,工程师查看页面
使用ansible作为配置下发工具,或netconf作为配置下发协议;
使用sqlite数据库,存储配置内容和单子信息;
功能设计
F5配置
业务流程
第一阶段
收到用户单子->预检查(即将下发的配置,设备上已经有的配置)->自动生成配置参数->审批->下发配置->关闭。
单子状态包括:
0.待处理:单子初始状态;
1处理中:暂时状态,接收到单子后就开始进入这个状态;
2待修正:生成参数过程中出现错误,需要工程师介入;
3待审批:已经生成配置参数,等待审批;
4已审批:审批通过,审批通过后立即下发;
5已配置:已经下发配置;
6关闭:已经关闭;
7挂起:暂时不需要处理,如果需要继续处理,手动修改进入待处理状态。
用户提交单子
用户提交单子后,返回一个弹窗,返回单号
预检查和生成配置
- 检查fqdn 是否存在,是否映射到VIP,如果已经映射到VIP,VIP port是否存
- 参数生成使用fqdn-port的形式,各参数格式如下:
pool :p-fqdn-port
virtual: v-fqdn-port
monitor: m-fqdn-port
审批和下发
审批配置时,
第二阶段
增强以下内容:
- 数据预审,用户填入非标准数据时,将会无法提交请求;或者提交的数据已经下发或即将下发,提交请求失败;
- 配置下发和变更系统结合,确定配置时间;
表设计
f5 ticket
key type
ticket string
user string
request date date
service fqdn string
service port int
server ip string(包含所有的server地址)
server port int(默认情况下,所有服务器端口一致)
monitor method string
monitor url string
deploy date date
status open/working/pending/plan/close
pool_name string, pool
monitor_name string, monitor
vs_name string ,virtual server
vip string, virtual ip
monitor_content string, monitor
f5_mapping
提供服务器地址和VIP地址,ltm的映射关系
srv_net vip_net device region
172.16.1.0/24, 192.168.1.0/24,
192.168.2.0/24 ltm1 上海
172.16.2.0/24, 192.168.1.0/24,
192.168.2.0/24 ltm1 上海
交换机端口配置
IP 地址管理
表设计
IP
ip name fqdn subnet status
192.168.1.1 host3453.lab.com y 192.168.1.0 used/unsed/select
subnet
subnet mask type region usage
192.168.1.0 24 f5_vip/srv_ip 上海 90%
公共表设计
Tickets
包含所有ticket的共有数据
key type
ticket string
region string
user string
request date date
deploy date date
status open/working/pending/plan/close
type string choice