作者:Eagle
成都創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡營銷推廣、網(wǎng)站重做改版、前進網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5建站、電子商務商城網(wǎng)站建設、集團公司官網(wǎng)建設、外貿營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為前進等各大城市提供網(wǎng)站開發(fā)制作服務。
某船舶行業(yè)科技公司,運維工程師,51Reboot學員。通過在51Reboot學習,由運維工程師轉至運維開發(fā)工程師。完成公司自動化平臺的構建,對運維開發(fā)有了自己的理解,空閑時間寫了這么一個小的項目來和大家分享一下。
環(huán)境
CentOS 6/7 x64
Python:2 .7.6
Etcd: 3.2.18
Confd:0 .16.0
Nginx: 1.12.1
效果演示
一,拓撲圖:
二、涉及軟件
ETD: 。分布式KV存儲系統(tǒng),一般用于共享配置和服務注冊與發(fā)現(xiàn)是ETOS存儲格式類似于文件系統(tǒng),以根“/”開始下面一級級目錄,最后一個是重點,一個關鍵對應一個值。
ETCD 集群:使用筏協(xié)議保證每個節(jié)點數(shù)據(jù)一致,由多個節(jié)點對外提供服務這里只用單臺。
confd:管理本地應用配置文件,使用etcd或consul存儲的數(shù)據(jù)渲染模板,還支持redis,zookeeper等.confd有一個手表功能,通過HTTP API定期監(jiān)測對應的etcd中目錄變化,獲取最新的價值,然后竟染模板
Nginx: Nginx是一款輕量級的Web服務器/反向代理服務器以及電子郵件代理服務器,并在一個BSD-like協(xié)議下發(fā)行。來自俄羅斯的程序設計師l gor Sysoev所開發(fā),供俄國大型的入口網(wǎng)站及搜索引擎聯(lián)系Rambler使用。其特點是占有內存少,并發(fā)能力強,事實上nginx的的并發(fā)能力確實在同類型的網(wǎng)頁服務器中表現(xiàn)較好。
三、軟件部署
環(huán)境說明:建議使用 Cento7.X X64
1)安裝 etcd(這里安裝的單機,集群環(huán)境根據(jù)自己的需求選取)
#yum install etcd -y #sed -i's / localhost / 0.0.0.0 / g'/etc/etcd/etcd.conf#配置監(jiān)聽地址 #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 </usr/local/src/nginx_upstream_check_module/check_1.12.1+.patch #。/ configure --prefix = / usr / local / nginx --add-module = / usr / local / src / nginx_upstream_check_module / make && make install #mkdir / usr / local / nginx / conf / vhost / Nginx的主配置文件修改為這個樣子,增加包括目錄配置 #vi /usr/local/nginx/conf/nginx.conf #user nobody; worker_processes 1; #error_log logs / error.log; #error_log logs / error.log通知; #error_log logs / error.log info; #pid logs / nginx.pid; 事件{ worker_connections 1024; } http { 包括mime.types; default_type application / octet-stream; #log_format main'$ remote_addr - $ remote_user [$ time_local]“$ request”' #'$ status $ body_bytes_sent“$ http_referer”' #'“$ http_user_agent”“$ http_x_forwarded_for”'; #access_log logs / access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; 包括vhost / * .conf; }
3)安裝 confd
地址下載https://github.com/kelseyhightower/confd/releases
下載完畢丟到系統(tǒng)里面
#cp confd / usr / bin / confd #哪個confd 在/ usr / bin中/ confd
4)創(chuàng)建配置文件目錄
#mkdir -p /etc/confd/{conf.d,templates}
conf.d#資源模板,下面文件必須以toml后綴
templates#配置文件模板,下面文件必須以tmpl后綴
5)創(chuàng)建 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”,#監(jiān)測的關鍵 ] reload_cmd =“/ usr / local / nginx / sbin / nginx -s reload”#最后執(zhí)行的命令
6)創(chuàng)建 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; } 位置/狀態(tài){ 檢查狀態(tài); 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#建議創(chuàng)建一個沙盒環(huán)境跑該平臺 #source env / bin / activate#使用沙盒環(huán)境 #pip install -r requirement.txt#安裝相關軟件
2)創(chuàng)建數(shù)據(jù)庫并將表刷入數(shù)據(jù)庫
#vi opsweb / settings.py#這里數(shù)據(jù)庫信息改為自己的數(shù)據(jù)庫信息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#提交遷移文件至數(shù)據(jù)庫,將表刷入數(shù)據(jù)庫
3)創(chuàng)建超級管理員賬號
#python manage.py createsuperuser
4)運行平臺
#python manage.py runserver 0:8000
訪問地址就是http:// ip:8000賬號密碼就是上一步創(chuàng)建的超級管理員賬號密碼5)登錄平臺為nginx創(chuàng)建鍵/值
例子:購物平臺為例
項目創(chuàng)建:
1.創(chuàng)建商城項目/購物
2.創(chuàng)建商城項目里面的/ Shopping / nginx nginx服務
3.創(chuàng)建nginx集群目錄/ Shopping / nginx / cluster1
4.給我們的商城nginx的集群1項目創(chuàng)建配置文件
5.域名和節(jié)點名稱可能是多個,這里我們需要創(chuàng)建目錄/ Shopping / nginx / cluster1 / server_name和/ Shopping / nginx / cluster1 / upstream
etcd里面存儲的值
配置創(chuàng)建:
1.反向代理/ Shopping / nginx / cluster1 / proxy_name
2.綁定一個域名/ Shopping / nginx / cluster1 / server_name / 1
3.創(chuàng)建一個集群節(jié)點/ Shopping / nginx / cluster1 / upstream / web1
etcd 里面存儲的值
生成的配置文件
通過主機文件我們可以查看節(jié)點狀態(tài)(雖然這個節(jié)點不是最高狀態(tài)但是由此可見,我們可以動態(tài)添加節(jié)點)
就分享該項目的作者在2018年7月12日晚21:00-22:00會跟大家詳細講解該項目并且相互探討共同學習進步有興趣的朋友可以看一下報名方式然后報名免費領取視頻并且進入直播群和我們的作者互動。
報名方式
分享時間: 18年7月12日晚
21:00--22:00
分享方式:網(wǎng)絡直播
報名方式:掃碼添加小助手微信,備注“公開課”進入直播分享群免費獲取視頻
文章題目:Python從零搭建Conf_Web配置管理平臺
新聞來源:http://www.rwnh.cn/article48/jisdep.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、移動網(wǎng)站建設、微信公眾號、外貿網(wǎng)站建設、手機網(wǎng)站建設、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)