您好,登錄后才能下訂單哦!
作者:Eagle
某船舶行業科技公司,運維工程師,51Reboot學員。通過在51Reboot學習,由運維工程師轉至運維開發工程師。完成公司自動化平臺的構建,對運維開發有了自己的理解,空閑時間寫了這么一個小的項目來和大家分享一下。
環境
CentOS 6/7 x64
Python:2 .7.6
Etcd: 3.2.18
Confd:0 .16.0
Nginx: 1.12.1
效果演示
一,拓撲圖:
二、涉及軟件
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 </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
下載完畢丟到系統里面
#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
etcd里面存儲的值
配置創建:
1.反向代理/ Shopping / nginx / cluster1 / proxy_name
2.綁定一個域名/ Shopping / nginx / cluster1 / server_name / 1
3.創建一個集群節點/ Shopping / nginx / cluster1 / upstream / web1
etcd 里面存儲的值
生成的配置文件
通過主機文件我們可以查看節點狀態(雖然這個節點不是最高狀態但是由此可見,我們可以動態添加節點)
就分享該項目的作者在2018年7月12日晚21:00-22:00會跟大家詳細講解該項目并且相互探討共同學習進步有興趣的朋友可以看一下報名方式然后報名免費領取視頻并且進入直播群和我們的作者互動。
報名方式
分享時間: 18年7月12日晚
21:00--22:00
分享方式:網絡直播
報名方式:掃碼添加小助手微信,備注“公開課”進入直播分享群免費獲取視頻
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。