亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Ansible自動化批量部署技術的研究與實現(xiàn)

        2022-10-25 09:51:42滕飛陳子銘
        中國科技縱橫 2022年17期
        關鍵詞:服務

        滕飛 陳子銘

        (廣東理工學院,廣東肇慶 526100)

        信息化的發(fā)展過程中,企業(yè)服務器的大量部署,已然成為運維計算機管理中最難的一個步驟。運營維護所需要的技術要求提升是自動化管理發(fā)展的大勢所趨。

        1.研究意義

        人工運維模式單一,結構簡單,只能管理少量的服務器,管理模式缺乏高效性,浪費大量的人力,這種運維模式應用到服務器集群管理上顯然不合適。隨著智能時代的發(fā)展,自動化運維技術出現(xiàn),管理工具也孕育而生,利用這些高效的管理工具來實現(xiàn)運維管理自動化已成為現(xiàn)階段運維管理的主要技術手段。所謂的自動化運維管理,就是指IT運維人員,將過去傳統(tǒng)人工對每臺服務器進行操作,實現(xiàn)部署更新系統(tǒng)操作,轉變成全部由機器自動化實現(xiàn)。

        批量部署也是自動化運維管理的一部分,隨著服務器數(shù)量的越發(fā)增多,批量部署在整個系統(tǒng)部署中起到重要的作用,所能達到的工作效率是有目共睹的。高效的監(jiān)控工具和部署工具的支持,讓運維管理可以做到快速處理故障服務器,本文對批量部署能力的研究具有重要的理論和現(xiàn)實意義[1]。

        2.Ansible 的研究與分析

        Ansible 是一款開源IT自動化工具,它基于Python語言開發(fā),能夠自動執(zhí)行置備、配置管理、應用部署、編排和許多其他手動 IT 流程。與更為簡易的管理工具不同,Ansible用戶(如系統(tǒng)管理員、開發(fā)人員和架構師)可以運用 Ansible 自動化,在整個企業(yè)范圍內(nèi)更高效地安裝軟件、自動執(zhí)行日常任務、置備基礎架構、提高安全性[2]。

        Ansible是一個輕量級工具,只需要安裝和配置控制終端,其被控制端不需要安裝相應的服務。使用通用

        Python語言開發(fā),讓它非常友好,使得它在IT行業(yè)越來越受歡迎。Python的廣泛使用使得Ansible工具的操作符更容易被開發(fā)。里面的模塊功能多樣化,一些企業(yè)或個人甚至在完善相關的功能模塊,使用Ansible對于系統(tǒng)部署和配置管理非常有用。

        3.批量部署設計

        3.1 整體設計

        整體架構前端利用HAProxy做Nginx的Web服務器集群的負載均衡,使用Keepalived的VRRP功能實現(xiàn)網(wǎng)絡平穩(wěn)通暢運行,達到高可用的目的,保證了Web集群的訪問量與性能。這種架構有很多場景,比如一些電商企業(yè)的購物網(wǎng)站,可以搭建在LNMP集群上,通過集群部署的方式在平臺進行推廣時可能會增加點擊量,可以通過前端負載均衡服務器會進行流量分配,以減輕服務器的壓力,保證電商平臺的正常工作[3]。大型平臺是有非常多的Web集群和數(shù)據(jù)庫集群,而IT運維人員不可能24h不間斷監(jiān)控,這就需要一個Zabbix監(jiān)控工具來監(jiān)控整個平臺。整體架構設計結構如圖1所示。

        圖1 整體架構設計

        3.2 Ansible批量部署設計

        Ansible部署過程簡單,可一次性對多臺服務器進行部署。找到/etc/ansible/hosts配置文件,在其中增添被控制端服務器的IP。Ansible部署安裝完成后,建立SSH連接,使控制端無需密碼即可登錄受控主機。編寫Playbook批量部署受控主機,Ansible劇本執(zhí)行流程圖如圖2所示。

        圖2 Ansible部署流程

        3.3 Zabbix 監(jiān)控設計

        Zabbix的監(jiān)控端需要安裝Zabbix server服務,被監(jiān)控端需要安裝Zabbix agent服務,只要安裝了Agent服務,就連自身也能監(jiān)控。為了減輕Zabbix server的壓力,本文設計的監(jiān)控模式采用主動模式,由Zabbix agent主動收集數(shù)據(jù)并推送給Zabbix server,它只需要處理大量的數(shù)據(jù)并警告即可,Zabbix監(jiān)控流程如圖3所示。

        圖3 設計zabbix監(jiān)控流程

        3.4 Keepalived的VIP漂移設計

        Keepalive高可用方案部署在HAProxy 2臺主機上,去展示HAProxy的高可用,高可用集群包括熱備和互備,這些集群通常由2個以上機器組成。文采用2臺機器的熱備方案,其中一臺作為主服務器對外提供服務,另一臺作為備機,但服務未啟動。主機和備機通過網(wǎng)絡跳線相互監(jiān)控。當備機監(jiān)測到主機宕機時,可以根據(jù)預設好的方案將IP和服務切換到備機。以下是本次設計用到的核心配置:

        以IP地址為192.168.191.132的主機作為主機,nginx1為它的路由器標識,虛擬路由器VI_1由vrrp_instance來定義,定義MASTER工作狀態(tài),工作接口為ens33,虛擬MAC最后一段地址的信息是100,優(yōu)先級是200,通告頻率為1s,開啟通信認證機制,設置虛擬VIP地址為192.168.191.200。

        以IP地址為192.168.191.133的機器作為備用主機,路由名稱配置為nginx2,虛擬名稱vrrp_instance稱為VI_1,啟動待機工作BACKUP,工作的接口為ens33,100作為虛擬MAC最后顯示的地址信息,優(yōu)先級低于主機為150,通告頻率1s,開啟通信認證的機制,設置同樣的虛擬VIP地址為192.168.191.200。設計好配置文件,Keepalive高可用架構如圖4所示。

        圖4 Keepalive高可用架構

        3.5 HAProxy反向代理設計

        設計HAProxy全局屬性,使服務以daemon方式在后臺運行,最大同時256個連接,指定保存HAProxy進程號的文件,默認為http模式,連接server端不能超過5s,客戶端響應不能超過50s,server端響應不應超過50s。前端服務的監(jiān)聽端口為8080,請求轉發(fā)至名為“servers”的后端服務。HAProxy可以向這個服務頒發(fā)32個并發(fā)數(shù),檢查80端口的狀態(tài)。定義監(jiān)控頁面綁定端口1080,每5s更新監(jiān)控數(shù)據(jù),訪問監(jiān)控頁面使用stats,監(jiān)控頁面的認證提示用戶名和密碼,其核心配置如下所示:

        HAProxy通過負載均衡算法將訪問流量負載引流到集群中的開啟Web服務的Nginx節(jié)點。當Keepalived的Master服務通過其自帶的健康檢測功能,檢測到網(wǎng)絡連通不到后端節(jié)點,那么Backup節(jié)點就會變成為Master節(jié)點進行服務。一主多從的多機熱備更有保障,只要增加備用的Keepalive節(jié)點就可以實現(xiàn)。很多情況下雙熱備份就能滿足,不需要浪費資源。HAProxy負載均衡流程如圖5所示。

        圖5 HAProxy負載均衡流程

        3.6 LNMP 架構設計

        大部分部署軟件都是從源代碼安裝的,因為安裝軟件的模塊應該適合企業(yè)的生產(chǎn)環(huán)境和生產(chǎn)需求,企業(yè)會根據(jù)自己的需求來選擇軟件的模塊,并編譯出最適合自己的軟件功能條件。按照傳統(tǒng)的編譯安裝方式部署LNMP架構,需要操作人員在每臺服務器上手動安裝,錯誤率高效力低下。當利用Ansible實現(xiàn)LNMP架構的自動化批量部署能夠極大地解決傳統(tǒng)運維部署方式存在的問題。LNMP架構搭建流程如圖6所示。

        圖6 LNMP架構搭建流程

        4.批量部署設計

        4.1 部署安裝環(huán)境

        準備5臺CentOS7操作系統(tǒng)的虛擬機,并且系統(tǒng)版本完全一致,利于后期系統(tǒng)排錯和統(tǒng)一管理,系統(tǒng)內(nèi)存為2G,處理器核心數(shù)量為2。在企業(yè)中Ansible自動化部署工具是用來安裝部署多臺服務器的,但在本文中因本人資源有限,只能讓其中1臺作為Ansible管理節(jié)點,其余4臺被管理服務器作為測試節(jié)點。具體安裝服務,如表1所示。

        表1 部署安裝環(huán)境測試表

        4.1.1 安裝Ansible

        在IP地址為192.168.191.131的CentOS7操作系統(tǒng)的虛擬機上,使用Yum安裝Ansible自動化批量部署工具,使其作為Ansible管理節(jié)點。輸入安裝命令Yum install -y ansible 輸出的結果如圖7所示。

        圖7 安裝Ansible工具

        4.1.2 部署ssh免密通信

        想要Asible控制端與被控端正常的部署工作,需要讓Ansible控制服務器與被控制服務器節(jié)點建立通信,通信的方式主要有2種,第一種是基于密碼鏈接,第二種是基于密鑰連接。我們選擇后者,因為前者不安全暴露密碼,在實際生產(chǎn)環(huán)境中我們是不能隨便暴露密碼的,第二種比較安全但是需要先創(chuàng)建公鑰和私鑰,并下發(fā)公鑰至被控制端。

        讓控制端主機Ansible能夠免密登錄到被控制端的主機,實現(xiàn)直接遠程登錄上被控制端主機無需驗證密碼。Ansible控制端生成密鑰的命令為ssh-keygen,如圖8所示。

        圖8 密鑰的創(chuàng)建

        要想實現(xiàn)Ansible免密登錄到其他的服務器節(jié)點,就要把上圖生成的公鑰發(fā)送到其他服務器節(jié)點,根據(jù)提示輸入其服務器的用戶和密碼,至此免密通信搭建成功。

        推送公鑰到其他被控服務器節(jié)點的命令為ssh-copyid -i ~/.ssh/id_rsa.pub root@ip 地址,其中 id_rsa.pub為系統(tǒng)存放公鑰的文件。使用免密登錄被控制端主機的命令ssh root@IP地址,按照主機清單依次輸入IP地址,驗證免密操作是否成功。測試免密通信成功如圖9所示。

        圖9 免密通信

        4.1.3 部署Hosts Inventory

        在Ansible框架中Hosts Inventory為主機清單,指定的是一個配置文件。將需要遠程管理的主機IP寫入主機清單中,指定操作的主機。Ansible會根據(jù)主機清單中提供的主機IP對主機進行遠程控制與監(jiān)控遠程主機的運行狀態(tài)??梢詫π枰h程管理的主機進行IP分組管理,有利于分配不同的部署操作。本文測試中對4臺主機進行了遠程管理,分別將4臺主機分成Web組與proxy組。主機清單配置如圖10所示。

        圖10 主機清單

        4.2 部署 Zabbix 監(jiān)控

        Zabbix監(jiān)控需要部署安裝Zabbix-agent服務,不像Ansible批量部署技術一樣,不需要在被控制端安裝服務,只要控制端與被控制端之間能夠通信就可以批量安裝部署。由于Zabbix服務端需要和Ansible控制端安裝在同一臺虛擬機上IP地址為192.168.191.131,Zabbix服務端只需要安裝在一臺虛擬機上,Ansible技術是為了大量的機器部署,用來提高IT運維人員的工作效率。但是為了一臺機器就編寫一個劇本會浪費時間,所以就不需要編寫劇本,只需要寫一個sh腳本就可以了。

        4.2.1 部署Zabbix Server

        Zabbix監(jiān)控需要穩(wěn)定運行,且Zabbix監(jiān)控是用于內(nèi)部網(wǎng)絡的監(jiān)控,沒有大量的訪問流量,所以選擇LAMP架構來安裝Zabbix服務端。

        安裝Zabbix監(jiān)控服務端前,我們需要進入MySQL創(chuàng)建Zabbix數(shù)據(jù)庫,并且所有的服務器節(jié)點均需要授權。創(chuàng)建數(shù)據(jù)庫語句為 create database zabbix character set utf8 collate utf8_bin;,創(chuàng)建 Zabbix 用戶并 設計密碼 create user zabbix@'%' identified by '123456'; 服務器節(jié)點均授權語句 grant all privileges on zabbix.*to zabbix@'%';查詢Zabbix數(shù)據(jù)庫以及Zabbix用戶白名單,返回的結果如圖11所示。

        圖11 Zabbix數(shù)據(jù)庫及Zabbix用戶

        在Ansible控制端安裝Zabbix服務,采取Yum安裝的語句為 yum -y install zabbix-server-mysql zabbixweb-mysql,安裝完成后開啟Zabbix服務和Apache服務,在網(wǎng)頁上輸入192.168.191.131/Zabbix,進入Zabbix服務端的安裝界面完成相關操作。

        4.2.2 部署Zabbix Agent

        部署Zabbix agent服務,是為了使其能被Zabbix所監(jiān)控,所以需要在所有Ansible被控制端上部署。

        如上所示中的Web和Proxy為主機清單中的兩個用戶組,執(zhí)行代碼部署。

        4.3 部署Keepalived+HAProxy實現(xiàn)高可用

        在IP地址為192.168.191.132和192.168.191.133這2臺被控制端主機中,批量安裝Keepalived+HAProxy。

        其中Keepalived的安裝部署為yum安裝,HAProxy的安裝部署為源碼編譯安裝。Ansible分別通過調用Unarchive模塊解壓源碼包,調用Shell模塊對HAProxy進行編譯安裝,調用Yum模塊安裝依賴包和Keepalived。利用命令Ansible-playbook自動化部署過程如圖12所示。

        圖12 部署Keepalived+HAProxy結果

        4.4 部署 LNMP架構

        本文是需要在IP地址為192.168.191.134和192.168.191.135的主機上部署LNMP架構。Ansible批量部署LNMP架構的Playbook的設計代碼由于過多,部署軟件所需的各個目錄與所需要的依賴包等過程省略截取。

        (1)Ansible通過調用Unarchive模塊對Nginx安裝包進行解壓,并指定存放地點;調用Shell模塊進行編譯安裝Nginx,并且啟動Nginx。

        (2)Ansible通過調用Unarchive模塊對Php安裝包進行解壓;調用user模塊添加用戶;調用Shell模塊來編譯安裝;調用file模塊來對文件進行授權。

        (3)安裝MySQL是通過Ansible調用Yum模塊來對MySQL進行部署;通過Shell模塊來啟動MySQL。

        (4)Ansible通過調用批量部署LNMP的Playbook。

        5.結語

        本次批量部署中,搭載LNMP架構測試的機器主要有2臺,IP地址分別為192.168.191.134和192.168.191.135。啟動Nginx的Web服務,在瀏覽器中分別輸入與之相應IP地址,能夠成功訪問2臺Web服務器。對其部署的高可用LNMP架構進行了詳細的測試,并且可以實現(xiàn)使用郵件發(fā)送監(jiān)控警告。Ansible批量部署工具去完成了Keepalived、Haproxy和LNMP架構的部署。

        猜你喜歡
        服務
        自助取卡服務
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        高等教育為誰服務:演變與啟示
        招行30年:從“滿意服務”到“感動服務”
        商周刊(2017年9期)2017-08-22 02:57:56
        越南女子杂交内射bbwxz| 欧美一级鲁丝片免费一区| 亚洲av粉嫩性色av| 日本在线一区二区三区视频观看| 大地资源高清在线视频播放| 亚洲男同志网站| 久热香蕉精品视频在线播放| 日本加勒比一区二区在线观看| 亚洲精品一品区二品区三区| 少妇性饥渴无码a区免费| 人人看人人做人人爱精品| 亚洲av中文无码乱人伦在线咪咕| 亚洲av天堂在线免费观看| 亚洲gay片在线gv网站| 精品无码一区在线观看| 亚洲综合色秘密影院秘密影院| 色婷婷久久99综合精品jk白丝| 中文字幕精品乱码一二三区| 国产精品久久婷婷免费观看| 久久精品无码一区二区日韩av| 国产色诱视频在线观看| 无码精品国产午夜| 日韩精品一区二区免费| 日本亚洲欧美色视频在线播放| 四虎精品成人免费观看| 97人妻人人做人碰人人爽| 中文字幕久久久人妻无码| 欧美人妻日韩精品| 一本色道久久88综合| 亚洲精品国产一二三区| 亚洲国产精品久久久久婷婷老年 | 狠狠噜狠狠狠狠丁香五月| 免费无码av片在线观看网址| 亚洲国产精品免费一区| 久久综合精品人妻一区二区三区| 国产成人精品久久亚洲高清不卡| 人妻熟妇乱又伦精品视频app | 国产三级视频一区二区| 蜜桃成熟时在线观看免费视频| 韩国无码av片在线观看网站 | 成年人视频在线播放麻豆|