今天,检查了所有的作业,提交完成了!!
总结了一下,只常码代码才能慢慢熟悉相关的语法!
HAproxy配置文件操作 作业 经过测试完成啦!
作业 1. HAproxy配置文件操作
1. 根据用户输入输出对应的backend下的server信息
2. 可添加backend 和sever信息
3. 可修改backend 和sever信息
4. 可删除backend 和sever信息
5. 操作配置文件前进行备份
6 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建;若信息与已有信息重复则不操作
配置文件 参考 http://www.cnblogs.com/alex3714/articles/5717620.html
先上一下流程图:
详细代码如下:
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import time 5 time_format='%y-%m-%d_%H-%M-%S'#格式化时间输出格式 6 times=time.strftime(time_format)#将时间转为字符串 7 8 def filebak():#自动备份配置文件函数 9 haproxy_bak='HA_bak_'+times 10 with open('HAproxy','r+',encoding='utf-8') as ha_file, 11 open(haproxy_bak,'w',encoding='utf-8') as new_file: 12 for line in ha_file: 13 new_file.write(line) 14 return haproxy_bak#返回备份文件名 15 16 def file_query():#查询server信息函数 17 file_dict={}#创建一个空字典 18 with open('HAproxy','r+',encoding='utf-8') as ha_file: 19 for line in ha_file: 20 line=line.strip()#去除空格与回车 21 try:#如果配置文件原先被破坏,会提示 22 if line.startswith('backend'):#判断以backend开头的行 23 key_1=line.split()[1]#以空格进行分割赋于变量 24 file_dict[key_1]={}#设置字典格式 25 file_dict_key1=file_dict[key_1]#赋于变量 26 if line.startswith('server'): 27 b={'server':[line.split()[1],line.split()[2]],'weight':line.split()[4],'maxconn':line.split()[6]}# 28 file_dict_key1.update(b)#更新字典 29 except Exception as e:#出错可返回操作 30 print("