文档章节

python 操作haproxy配置文件

eddy_linux
 eddy_linux
发布于 2015/11/10 00:07
字数 665
阅读 785
收藏 5
raw_input 获取的用户输入是字符串
input_str = raw_input("请输入内容:")
 
#如:
#用户输入:123   则 input_str = "123"
#用户输入:hello 则 input_str = "hello"
#用户输入:{"k1":123, 'k2': 'eddy'}   则 input_str = " {'k1':123, 'k2': 'eddy'} "

################# raw_input 获取到的输入都是字符串、字符串、字符串 !!!!!!! #################
因为raw_input 获取的是字符串,所以用户输入的 " {'k1':123, 'k2': 'eddy'} " 不具有字典的特性,也就不能使用 dic['key'] 来获取值
如果想要将用户输入的内容转换下格式,

"{'k1':123, 'k2': 'eddy'}"       字符串转换成字典类型
"[11,22,33,44]"                     字符串转换成列表类型

json模块
json模块的作用之一:根据字符串书写格式,将字符串自动转换成相应格式

import json
inp_str = "[11,22,33,44]"
inp_list = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 列表类型
 
 
inp_str = " {'k1':123, 'k2': 'eddy'} "
inp_dict = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 字典类型



输出:
    1、获取ha记录
    2、增加ha记录
    3、删除ha记录
 
num = raw_input('请输入操作序号:')
 
如果用户输入的 1:
    read = raw_input('请输入backend:')     如输入:www.eddy.org
    讲配置文件 backend www.eddy.org 节点下的所有记录获取到,并输入到终端
 
如果用户输入的 2:
    read = raw_input('请输入要新加的记录:') 如: {'backend': 'test.eddy.org','record':{'server': '100.1.7.9','weight': 20,'maxconn': 30}}
    # 讲read字符串转换成 字典类型
    read_dict = json.loads(read)
 
    backend_title = read_dict['backend']
    # 去配置文件中找到指定的节点:
    # backend test.eddy.org
    # 如果已经存在,
        # 则在此节点下添加根据用输入构造出的记录,例如:
            server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
    # 如果不存在,
        # 则添加backend节点和记录,例如:
    backend test.eddy.org
        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
 
    # (可选)可以再对节点下记录进行判断是否已经存在
 
如果用户输入的 3:
    read = raw_input('请输入要删除的记录:') 如: {'backend': 'test.eddy.org','record':{'server': '100.1.7.9','weight': 20,'maxconn': 30}}
    # 讲read字符串转换成 字典类型
    read_dict = json.loads(read)
    backend_title = read_dict['backend']
    #去配置文件中找到指定的节点,并在删除指定记录,如:
    backend test.eddy.org
         server 100.1.7.10 100.1.7.10 weight 20 maxconn 3000
         server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000   # 删除掉
 
    # (可选)如果backend下所有的记录都已经被删除,那么将当前 backend test.eddy.org 也删除掉。
原配置文件
global       
        log 127.0.0.1 local2
        daemon
        maxconn 256
        log 127.0.0.1 local2 info
defaults
        log global
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
        option  dontlognull

listen stats :8888
        stats enable
        stats uri       /admin
        stats auth      admin:1234
frontend eddy.org
        bind 0.0.0.0:80
        option httplog
        option httpclose
        option  forwardfor
        log global
        acl www hdr_reg(host) -i www.eddy.org
        use_backend www.eddy.org if www

backend www.eddy.org
        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
backend buy.eddy.org
        server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000


© 著作权归作者所有

共有 人打赏支持
eddy_linux
粉丝 21
博文 135
码字总数 188789
作品 0
成都
程序员
私信 提问
saltstack与docker结合构建高可用和自动发现服务

最近看了刘天斯大哥的文章《构建一个高可用及自动发现docker基础架构》,觉得高大上,他的架构基于etcd+confd+docker+haproxy构建的。至于优势,刘天斯大哥已经说的很清楚。 我这里想说的是我...

liuping0906
07/02
0
0
HAProxy实现RabbitMQ负载均衡

最近看了一下RabbitMQ的负载均衡策略,对于RabbitMQ集群来说,主要有两类负载均衡,客户端内部的和服务端的,客户端内部主要是采用负载均衡算法,服务端主要是采用代理服务器,这里记录一下,...

DFKyun
07/05
0
0
用python将ansible配置转为json格式

ansible的配置文件举例如下,这种配置文件不利于在前端的展现,因此,我们用一段简单的代码将ansible的配置文件转为json格式的: 用python将ansible配置转为json格式,python代码如下: 转换...

just_do_itit
2017/05/14
0
0
高可用的mysql galera集群部署

一:集群机器介绍四台机器:1.balance节点安装haproxy和keepalived机器名:balance01 172.18.48.1balance02 172.18.48.22.galera节点安装mysql数据库和galera机器名:galera01 172.18.48.3g...

双叶天下
2014/05/13
0
0
高可用高性能负载均衡软件HAproxy详解指南-第一章(简介、安装)

第一章:HAproxy简介及安装配置 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 目录 HAproxy简介 为什么要使用HAproxy haproxy 性能特点 负...

好笔记运维
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Centos 7 JDK、Tomcat9 安装并配置

Centos 7 JDK、Tomcat9 安装并配置 2017年04月17日 22:44:36 我是一座离岛 阅读数:5707更多 个人分类: webCentOS 版权声明:博主原创文章,转载请注明出处。 https://blog.csdn.net/ngl272...

linjin200
16分钟前
1
0
Spring boot遇到的问题

2018年12月11日 Ver:2.0.2升级到2.1.1文件上传遇到问题 The method setMaxFileSize(String) from the type MultipartConfigFactory is deprecated 是不是就不用设置了?...

夏碌冬藏
17分钟前
1
0
Spark sql操作Hive

这里说的是最简便的方法,通过Spark sql直接操作hive。前提是hive-site.xml等配置文件已经在Spark集群配置好。 val logger = LoggerFactory.getLogger(SevsSpark4.getClass) def main(args:...

守望者之父
18分钟前
1
0
炫酷粒子表白 | 听说女神都想谈恋爱了!

最近听女神说想谈恋爱了,✧(≖ ◡ ≖) 嘿嘿,一定不能放过这个机会,给她来个不一样的表白。 那么咱们就一起来把这个粒子系统玩出花来吧 演示地址: https://es2049.studio/work-show/text...

我的卡
19分钟前
2
0
Spark Streaming管理Kafka偏移量

前言 为了让Spark Streaming消费kafka的数据不丢数据,可以创建Kafka Direct DStream,由Spark Streaming自己管理offset,并不是存到zookeeper。启用Spark Streaming的 checkpoints是存储偏移...

架构师springboot
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部