django+etcd+confd 配置管理平台

环境

CentOS 6/7x64

Python:2.7.6

Etcd:3.2.18

Confd:0.16.0

Nginx:1.12.1

效果演示

拓扑图:

涉及软件

etcd:分布式 KV 存储系统,一般用于共享配置和服务注册与发现。是 CoreOS 公司发起的一个开源项目。 ETCD 存储格式类似于文件系统,以根"/"开始下面一级级目录,最后一个是 Key,一个 key 对应一个 Value。

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

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

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

软件部署

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

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

2)安装 nginx

3)安装 confd

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

下载完毕丢到系统里面

# cp confd /usr/bin/confd

# which confd

/usr/bin/confd

4)创建配置文件目录

5)创建 confd 配置文件

6)创建 confd 模板

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

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

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

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

配置平台部署

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

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

3)创建超级管理员账号

# python manage.py createsuperuser

4)运行平台

# python manage.py runserver 0:8000

访问地址就是 http://ip:8000 账号密码就是上一步创建的超级管理员账号密码

5)登录平台为 nginx 创建 key/value

例子: Shopping 平台为例

项目创建:

1.创建商城项目 /Shopping

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

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

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

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

etcd 里面存储的值

配置创建:

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

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

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

etcd 里面存储的值

生成的配置文件

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

读而思51Reboot最新课程资讯

第 19 期Python实战班正在火热招生中

第 8 期自动化运维班正在招生中

详情扫码咨询

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180620G1GJ3X00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券