Python从零搭建Conf_Web配置管理平台
admin
2023-07-24 06:42:21
0

作者:Eagle

某船舶行业科技公司,运维工程师,51Reboot学员。通过在51Reboot学习,由运维工程师转至运维开发工程师。完成公司自动化平台的构建,对运维开发有了自己的理解,空闲时间写了这么一个小的项目来和大家分享一下。


环境


CentOS 6/7 x64

Python:2 .7.6

Etcd: 3.2.18

Confd:0 .16.0

Nginx: 1.12.1


效果演示

Python从零搭建Conf_Web配置管理平台

一,拓扑图:

Python从零搭建Conf_Web配置管理平台

二、涉及软件


ETD: 。分布式KV存储系统,一般用于共享配置和服务注册与发现是ETOS存储格式类似于文件系统,以根“/”开始下面一级级目录,最后一个是重点,一个关键对应一个值。


ETCD 集群:使用筏协议保证每个节点数据一致,由多个节点对外提供服务这里只用单台。


confd:管理本地应用配置文件,使用etcd或consul存储的数据渲染模板,还支持redis,zookeeper等.confd有一个手表功能,通过HTTP API定期监测对应的etcd中目录变化,获取最新的价值,然后竟染模板


Nginx: Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。来自俄罗斯的程序设计师l gor Sysoev所开发,供俄国大型的入口网站及搜索引擎联系Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的的并发能力确实在同类型的网页服务器中表现较好。


三、软件部署


环境说明:建议使用 Cento7.X X64


1)安装 etcd(这里安装的单机,集群环境根据自己的需求选取)

#yum install etcd -y
#sed -i's / localhost / 0.0.0.0 / g'/etc/etcd/etcd.conf#配置监听地址
#systemctl start etcd && systemctl enable etcd#启动服务设置开机动


2)安装 nginx


#cd / usr / local / src
 #wget http://nginx.org/download/nginx-1.12.1.tar.gz
 #git clone https://github.com/yaoweibin/nginx_upstream_check_module.git  
 #tar -zxvf nginx-1.12.1.tar.gz 
 #cd nginx-1.12.1
 #patch -p1 


3)安装 confd


地址下载https://github.com/kelseyhightower/confd/releases


下载完毕丢到系统里面


#cp confd / usr / bin / confd 
#哪个confd
在/ usr / bin中/ confd


4)创建配置文件目录


#mkdir -p /etc/confd/{conf.d,templates}

 conf.d#资源模板,下面文件必须以toml后缀

 templates#配置文件模板,下面文件必须以tmpl后缀


5)创建 confd 配置文件


  #vi /etc/confd/conf.d/app01.conf.toml
   src =“app01.conf.tmpl”#默认在/ etc / confd / templates目录下
   dest =“/ usr / local / nginx / conf / vhost / app01.conf”#要更新的配置文件
   键= [
      “/ Shopping”,#监测的关键
   ]
   reload_cmd =“/ usr / local / nginx / sbin / nginx -s reload”#最后执行的命令


6)创建 confd 模板


  #vi /etc/confd/templates/app01.conf.tmpl 
   
   upstream {{getv“/ Shopping / nginx / cluster1 / proxy_name”}} {
     {{range getvs“/ Shopping / nginx / cluster1 / upstream / *”}}
       server {{。}};
     {{结束}}
     check interval = 5000 rise = 1 fall = 5 timeout = 4000 type = http;
     check_http_send“HEAD / HTTP / 1.0 \ r \ n \ r \ n”;
     check_http_expect_alive http_2xx http_3xx;
   }
     
   服务器{
      server_name {{range getvs“/ Shopping / nginx / cluster1 / server_name / *”}} {{。}} {{end}};
      位置 / {
        proxy_pass http:// {{getv“/ Shopping / nginx / cluster1 / proxy_name”}};
        proxy_redirect off;
        proxy_set_header Host $ host;
        proxy_set_header X-Real-IP $ remote_addr;
        proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
     }
       位置/状态{
           检查状态;
           access_log off;
          }
   }


7)启动 confd 并设置开机启动


开机启动脚本会随文档附带


拷贝至 /etc/init.d/confd,只需要更改等改为连接地址即可

#/ etc / init.d / confd start && chkconfig --add confd && chkconfig confd on


四、配置平台部署

1)Github克隆平台代码安装平台依赖


 #git clone https://github.com/1032231418/Conf_Web.git
 #cd Conf_Web / ospweb /
 #virtualenv env#建议创建一个沙盒环境跑该平台
 #source env / bin / activate#使用沙盒环境
 #pip install -r requirement.txt#安装相关软件


2)创建数据库并将表刷入数据库

#vi opsweb / settings.py#这里数据库信息改为自己的数据库信息DATABASES = {'default':{'ENGINE':'django.db.backends.mysql','NAME':'confd','HOST' :'192.168.8.114','USER':'root','PASSWORD':'123456','PORT':3306,}} ETCD_Server =“192.168.0.221”#这里改为自己etcd的ip地址ETCD_Port = 2379 #python manage.py migrate#提交迁移文件至数据库,将表刷入数据库


3)创建超级管理员账号

#python manage.py createsuperuser

4)运行平台

#python manage.py runserver 0:8000

访问地址就是http:// ip:8000账号密码就是上一步创建的超级管理员账号密码5)登录平台为nginx创建键/值


例子:购物平台为例


项目创建:


1.创建商城项目/购物


2.创建商城项目里面的/ Shopping / nginx nginx服务


3.创建nginx集群目录/ Shopping / nginx / cluster1


4.给我们的商城nginx的集群1项目创建配置文件


5.域名和节点名称可能是多个,这里我们需要创建目录/ Shopping / nginx / cluster1 / server_name和/ Shopping / nginx / cluster1 / upstream

Python从零搭建Conf_Web配置管理平台


etcd里面存储的值

Python从零搭建Conf_Web配置管理平台


配置创建:


1.反向代理/ Shopping / nginx / cluster1 / proxy_name


2.绑定一个域名/ Shopping / nginx / cluster1 / server_name / 1


3.创建一个集群节点/ Shopping / nginx / cluster1 / upstream / web1

Python从零搭建Conf_Web配置管理平台


etcd 里面存储的值

Python从零搭建Conf_Web配置管理平台


生成的配置文件


Python从零搭建Conf_Web配置管理平台

通过主机文件我们可以查看节点状态(虽然这个节点不是最高状态但是由此可见,我们可以动态添加节点)

Python从零搭建Conf_Web配置管理平台


就分享该项目的作者在2018年7月12日晚21:00-22:00会跟大家详细讲解该项目并且相互探讨共同学习进步有兴趣的朋友可以看一下报名方式然后报名免费领取视频并且进入直播群和我们的作者互动。


报名方式

分享时间: 18年7月12日晚


21:00--22:00


分享方式:网络直播


报名方式:扫码添加小助手微信,备注“公开课”进入直播分享群免费获取视频

Python从零搭建Conf_Web配置管理平台


相关内容

热门资讯

小车撞断护栏从数米高桥下飞落,... 极目新闻记者 张皓6月26日早上,多名网友发布视频称,山西阳泉市赛鱼大桥,一辆小车撞断石质护栏后,坠...
为流量摆拍“铁笼游街”,法律就... 一次“人狗同笼”低俗摆拍的底线试探,换来1人被刑拘、8人被行拘的法律回应6月26日,针对近日网传“多...
洛阳市最新人事任免:李夏影任市... 6月25日,洛阳市人民政府任免国家工作人员。任命李夏影(女)为洛阳市人民政府国有资产监督管理委员会副...
“蓝色票政”掀动暑期热浪!郑州... 郑州海昌海洋公园以“夏天就要‘泡’在海洋里”为主题,打造的专属海洋的夏日清凉...
7月1日起,郑州市城乡低保标准... 6月26日,记者从郑州市民政局获悉,郑州市民政局、郑州市财政局近日联合下发通知,明确从2026年7月...
学习新语|发挥党建引领作用 建... 6月24日,习近平总书记在山东德州考察时,走进西于架村党群服务中心,细致询问村党组织建设和开展便民服...
城长中的河南宝贝丨“磨”出潮流... 六面顶压机见证老厂新生“磨”出潮流街区新生态磨街文创园入口处,六面顶压机化身艺术装置。 高洋 摄【开...
河南省发展改革委主任马健:做强... 做强开发区主阵地主引擎——访省发展改革委党组书记、主任马健“近年来,我省扎实推进功能布局优化、主导产...
美国250周年在即,民调:近8... 【文/观察者网 齐倩】今年7月4日,美国将迎来独立250周年纪念日。“建国250周年之际,美国人情感...
柯志恩是否能复制韩国瑜当年胜选... 海峡导报综合报道 根据《ETtoday民调云》23日公布的最新高雄市长选战民调,国民党市长参选人柯志...