999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux內(nèi)核下Ansible自動化運(yùn)維技術(shù)的研究與應(yīng)用

2022-05-30 02:41:53韓佳辰白君芬
電腦知識與技術(shù) 2022年31期

韓佳辰 白君芬

摘要:分析研究了Ansible技術(shù)的工作原理、體系架構(gòu)以及在網(wǎng)絡(luò)系統(tǒng)運(yùn)維中的應(yīng)用優(yōu)勢。同時(shí),通過實(shí)例闡述了如何在Linux內(nèi)核下合理使用Ansible技術(shù)對企業(yè)網(wǎng)絡(luò)進(jìn)行自動化運(yùn)維管理,為大數(shù)據(jù)下的自動化運(yùn)維技術(shù)的進(jìn)一步發(fā)展提供了研究思路并起到了一定的借鑒作用。

關(guān)鍵詞:Ansible;架構(gòu);腳本;Linux;自動化運(yùn)維

中圖分類號:TP393 ? ? ? ?文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2022)31-0071-03

隨著大數(shù)據(jù)時(shí)代的來臨,企業(yè)網(wǎng)絡(luò)中的應(yīng)用系統(tǒng)慢慢增大,不同的應(yīng)用系統(tǒng)需要的運(yùn)行環(huán)境、Web服務(wù)器、數(shù)據(jù)庫以及運(yùn)行維護(hù)方式等都會不同,網(wǎng)絡(luò)系統(tǒng)異構(gòu)性大。另外,隨著虛擬化技術(shù)的成熟[1],企業(yè)內(nèi)的IT建設(shè)速度激增,需要運(yùn)維的網(wǎng)絡(luò)設(shè)備也越來越多,這都加大了企業(yè)網(wǎng)絡(luò)系統(tǒng)運(yùn)行和維護(hù)工作的難度,因此原有的依靠人力或者腳本進(jìn)行網(wǎng)絡(luò)系統(tǒng)運(yùn)維的方式已無法滿足企業(yè)需求,而自動化運(yùn)維技術(shù)Ansible不僅可以批量完成網(wǎng)絡(luò)系統(tǒng)運(yùn)維任務(wù),降低人力成本,而且運(yùn)維的效率和可靠性極高,因此Ansible技術(shù)在網(wǎng)絡(luò)系統(tǒng)建設(shè)與運(yùn)維中具有獨(dú)特的優(yōu)勢和潛力[2-3]。

1 Ansible技術(shù)概述

Ansible是基于Python語言開發(fā)的一款輕量級自動化運(yùn)維工具,它默認(rèn)采用SSH(Secure Shell) 安全外殼協(xié)議的方式管理客戶端,在主控端部署Ansible環(huán)境,通過SSH遠(yuǎn)程管理被控主機(jī)(節(jié)點(diǎn))。Ansible提供了各種模塊對客戶端進(jìn)行批量管理,包括執(zhí)行命令、安裝軟件、執(zhí)行特定任務(wù)等。與其他運(yùn)維軟件相比,Ansible具有以下應(yīng)用優(yōu)勢:

1) 部署簡單,只需在主控端部署Ansible環(huán)境,被控端無須做任何操作。默認(rèn)通過SSH協(xié)議對設(shè)備進(jìn)行管理,配置簡單,功能強(qiáng)大,擴(kuò)展性強(qiáng)。

2) 支持API及自定義模塊,可通過Python輕松擴(kuò)展,通過Playbook(腳本)來定制強(qiáng)大的配置、狀態(tài)管理。

3) 對云計(jì)算平臺、大數(shù)據(jù)有很好的支持。提供一個(gè)功能強(qiáng)大、可操作性強(qiáng)的Web管理界面和REST API接口—AWX接口。

4) Ansible中的配置文件和腳本都是使用YAML語言編寫的,作為專門用來編寫配置文件的YAML語言,其功能強(qiáng)大,方便讀寫。

1.1 Ansible技術(shù)原理

Ansible技術(shù)是基于模塊工作的,真正具有批量部署能力的是它所運(yùn)行的模塊。Ansible架構(gòu)主要包括核心引擎、主機(jī)清單、核心模塊、自定義模塊、腳本、插件、連接插件模塊[4-5]。Ansible架構(gòu)如圖1所示。

其中:主機(jī)清單模塊負(fù)責(zé)定義Ansible的主機(jī)策略;核心模塊負(fù)責(zé)執(zhí)行特定任務(wù)或匹配一個(gè)特定狀態(tài);自定義模塊負(fù)責(zé)對Ansible進(jìn)行擴(kuò)展;腳本模塊定義Ansible任務(wù)的文件,可以將多個(gè)任務(wù)定義在一個(gè)腳本文件中,由Ansible執(zhí)行;插件模塊用于補(bǔ)充模塊功能,完成記錄日志、郵件等功能;連接插件模塊負(fù)責(zé)實(shí)現(xiàn)各個(gè)主機(jī)的連接,實(shí)現(xiàn)與被管節(jié)點(diǎn)通信[3,6]。

1.2 Ansible對各種類型主機(jī)的管理

Ansible可以同時(shí)管理搭建了Red Hat系列Linux系統(tǒng)、Debian系列Linux系統(tǒng)與Windows系統(tǒng)的主機(jī),如圖2所示。

2 Ansible技術(shù)運(yùn)用

2.1 Ansible安裝

1) 安裝前的準(zhǔn)備工作

在安裝之前準(zhǔn)備3臺主機(jī),主機(jī)信息如表1所示。

在表1示例中,localhost主機(jī)是Ansible的管理機(jī),Ansible1與Ansible2是被管理的遠(yuǎn)程主機(jī)(節(jié)點(diǎn)),安裝Ansible時(shí)只在管理機(jī)(192.168.175.141) 安裝即可,需要注意的是在安裝之前需要關(guān)閉防火墻與SELinux(強(qiáng)制訪問控制系統(tǒng))。

2) 使用yum install命令安裝Ansible

①主機(jī)中安裝包含Ansible軟件包的EPEL源,命令如下:

[root@localhost~]# yum install epel-release

②安裝Ansible,命令如下:

[root@localhost~]# yum-y install ansible

2.2 配置SSH無密碼登錄

使用ssh-keygen與ssh-copy-id兩個(gè)命令來設(shè)置Linux主機(jī)SSH無密碼登錄,其中,ssh-keygen生成一對密鑰(公鑰和密鑰);ssh-copy-id把本地主機(jī)的公鑰復(fù)制到目標(biāo)主機(jī)上,并對遠(yuǎn)程的用戶目錄設(shè)置合適的權(quán)限。

1) 生成一對密鑰。在localhost主機(jī),使用ssh-keygen命令生成一對密鑰,命令如下:

[root@localhost~]# ssh-keygen -t rsa

2) 將公鑰下發(fā)到遠(yuǎn)程主機(jī)。使用ssh-copy-id命令將公鑰下發(fā)到節(jié)點(diǎn),命令如下:

[root@localhost~]# ssh-copy-id root@192.168.175.135

3) 保管私鑰。公鑰下發(fā)完畢后,使用ssh-add命令將私鑰交由192.168.175.135管理,命令如下所示:

[root@localhost~]# ssh-add.ssh/id_rsa

再執(zhí)行命令[root@localhost~]# ssh 192.168.175.135,驗(yàn)證配置是否成功,如果能直接無密碼進(jìn)入目標(biāo)主機(jī),就說明SSH無密碼登錄配置成功,再以同樣的方式配置另一臺192.168.175.136主機(jī)。

2.3 Ansible應(yīng)用實(shí)例

編寫ansible腳本(playbook) ,實(shí)現(xiàn)httpd(代理服務(wù)器) 角色,代碼如下:

#創(chuàng)建角色相關(guān)的目錄

mkdir -pv /data/ansible/roles/httpd/{tasks,handlers,files}

#創(chuàng)建角色相關(guān)的文件

cd /data/ansible/roles/httpd/

vim tasks/main.yml

- include: group.yml

- include: user.yml

- include: install.yml

- include: config.yml

- include: index.yml

- include: service.yml

vim ?tasks/user.yml

- name: create apache user

user: name=apache system=yes shell=/sbin/nologin home=/var/www/ uid=80 group=apache

vim ?tasks/group.yml

- name: create apache group

group: name=apache system=yes gid=80

vim tasks/install.yml

- name: install httpd package

yum: name=httpd

vim tasks/config.yml

- name: config file

copy: src=httpd.conf dest=/etc/httpd/conf/ backup=yes

notify: restart

vim tasks/index.yml

- name: index.html

copy: src=index.html dest=/var/www/html/

vim tasks/service.yml

- name: start service

service: name=httpd state=started enabled=yes

vim handlers/main.yml

- name: restart

service: name=httpd state=restarted

#在playbook中調(diào)用角色

vim ?/data/ansible/role_httpd.yml

# httpd role

- hosts: websrvs

remote_user: root

roles:

- httpd

#運(yùn)行playbook

ansible-playbook ?/data/ansible/role_httpd.yml

3 Ansible技術(shù)應(yīng)用方面的問題及解決方法

3.1 Ansible技術(shù)應(yīng)用方面的問題

Ansible技術(shù)的應(yīng)用都是使用命令在節(jié)點(diǎn)上執(zhí)行任務(wù),而命令使用起來比較復(fù)雜,同時(shí)每執(zhí)行一次任務(wù)都需要重復(fù)輸入,這種命令代碼難于重用和分享的局域性,會導(dǎo)致重復(fù)工作和效率低的問題。 針對此類問題,Ansible技術(shù)提供了playbook腳本和role角色來用于實(shí)現(xiàn)代碼重用和分享。

3.2 解決方法

3.2.1 playbook腳本

playbook腳本即一個(gè)可以被 Ansible執(zhí)行的YAML文件,用戶通過ansible命令直接調(diào)用yml語言編寫的playbook,playbook是由一條或多條“play”組成的列表,每條play都有一個(gè)任務(wù)(task) 相對應(yīng)的操作,任務(wù)調(diào)用模塊modules,應(yīng)用在主機(jī)清單上,通過ssh遠(yuǎn)程連接,控制遠(yuǎn)程主機(jī)或者網(wǎng)絡(luò)設(shè)備,playbook腳本包含以下3個(gè)基本部分。

1) 指定節(jié)點(diǎn)和用戶

因?yàn)槊恳粋€(gè)playbook都需要指定針對哪些節(jié)點(diǎn)進(jìn)行運(yùn)維,并且以哪個(gè)用戶來執(zhí)行任務(wù),所以這就需要指定節(jié)點(diǎn)和用戶,指定節(jié)點(diǎn)使用hosts關(guān)鍵字,指定用戶使用users關(guān)鍵字。

2) 任務(wù)列表

任務(wù)列表即要執(zhí)行的任務(wù)的隊(duì)列,指定任務(wù)列表的關(guān)鍵字為tasks。任務(wù)列表中的每個(gè)任務(wù)都通過調(diào)用 Ansible模塊完成,任務(wù)按預(yù)先定義的先后順序執(zhí)行。

3) Handlers

Handlers也是通過對Ansible模塊進(jìn)行調(diào)用,實(shí)現(xiàn)處理某些動態(tài)事件。Handlers中的模塊調(diào)用與任務(wù)列表中的任務(wù)不同,任務(wù)默認(rèn)按定義順序執(zhí)行,而Handlers只有在被觸發(fā)時(shí)才會執(zhí)行。

顯而易見,playbook腳本通過對Ansible模塊進(jìn)行調(diào)用,就可以實(shí)現(xiàn)代碼的重復(fù)使用和分享。

3.2.2 role角色

role是Ansible中的一個(gè)非常重要的角色,它可以重復(fù)使用一組文件,實(shí)現(xiàn)更完整的功能。role是Ansible引入的新特性,用于結(jié)構(gòu)化、層次性地組織playbook。roles能夠根據(jù)層次型結(jié)構(gòu)自動裝載tasks、變量文件以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡而言之,roles就是通過分別將文件、變量、模塊、任務(wù)及處理器放置于單獨(dú)的目錄中、并可以便捷地include它們的一種機(jī)制。role角色一般用于基于主機(jī)構(gòu)建服務(wù)的場景中、但也可以是用于構(gòu)建守護(hù)進(jìn)程等場景中。例如:在安裝配置Linux平臺使用最廣泛的Web服務(wù)Apache服務(wù)器時(shí),既需要安裝、啟動、復(fù)制模板等任務(wù),也需要生成httpd.conf和index.html的模板文件,以及定義handlers來實(shí)現(xiàn)重啟。這些任務(wù)、配置文件、handlers都可以放在一個(gè)role中,形成一套完整的功能,以供不同的playbook使用。

同時(shí),Ansible不僅大力支持在playbook中使用role,而且提供了一個(gè)分享role的平臺Ansible Galaxy(https://galaxy.ansible.com) ,在這個(gè)網(wǎng)站上,用戶可以上傳自己的role,也可以下載別人的role來使用,因此能夠很好地提高運(yùn)維效率。

4 結(jié)束語

Ansible是基于安全性、高可靠性設(shè)計(jì)的輕量級自動化運(yùn)維工具,功能強(qiáng)大,部署便捷,簡單易學(xué),因此應(yīng)用前景廣泛。隨著云計(jì)算的不斷發(fā)展,越來越多的互聯(lián)網(wǎng)公司需要對企業(yè)服務(wù)器進(jìn)行自動化部署與運(yùn)維,最終實(shí)現(xiàn)配置管理、服務(wù)及時(shí)開通、應(yīng)用部署和流程編排等目的,針對傳統(tǒng)數(shù)據(jù)中心逐漸過渡為云數(shù)據(jù)中心,以及對云數(shù)據(jù)中心中大量服務(wù)進(jìn)行更快速地部署,更準(zhǔn)確地服務(wù)狀態(tài)監(jiān)控的需求,就必須要在具有配置管理和遠(yuǎn)程執(zhí)行的能力基礎(chǔ)上,提供各種工具來管理服務(wù)器的基礎(chǔ)架構(gòu),從而幫助企業(yè)快速構(gòu)建虛擬化環(huán)境下的數(shù)據(jù)中心,提高服務(wù)運(yùn)維的效率,保障服務(wù)運(yùn)行的質(zhì)量。

參考文獻(xiàn):

[1] 王曉天.基于虛擬化技術(shù)的云數(shù)據(jù)中心構(gòu)建及自動化運(yùn)維管理[J].軟件工程,2020,23(11):27-29.

[2] 李沁蔓.基于Ansible的服務(wù)器自動化運(yùn)維技術(shù)研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2020,28(13):23-26,31.

[3] 李湘林,向全,韋美雁,等.基于Ansible自動化運(yùn)維系統(tǒng)批量部署LAMP架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].大眾科技,2021,23(3):1-4.

[4] 沈尚博,袁泉.基于Ansible的自動化運(yùn)維工具設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2020,32(1):120-122.

[5] 劉佳,高琪琪,劉飄,等.基于Ansible的自動化部署與運(yùn)維[J].河南科技,2020(26):14-16.

[6] 隋利鋒,曾慶輝.大規(guī)模服務(wù)器環(huán)境下自動化運(yùn)維探索[J].當(dāng)代金融家,2022(5):150-151.

【通聯(lián)編輯:王力】

收稿日期:2022-08-09

作者簡介:韓佳辰(2004—) ,女,河南滑縣人,本科在讀,主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用及自動化技術(shù);白君芬(1974—) ,女,河北石家莊人,副教授,碩士,主要研究方向?yàn)榫W(wǎng)絡(luò)安全及計(jì)算機(jī)類教育。

主站蜘蛛池模板: 欧美日本在线一区二区三区| 国产在线观看人成激情视频| 日本影院一区| 国内精自线i品一区202| 在线观看国产精品第一区免费| 国产欧美精品午夜在线播放| 毛片久久网站小视频| 亚洲综合色婷婷中文字幕| 波多野结衣一级毛片| 欧美另类视频一区二区三区| 91精品专区国产盗摄| 国产综合色在线视频播放线视| 亚洲色图欧美在线| 日本精品中文字幕在线不卡| 国产三级毛片| 日韩精品一区二区三区中文无码| 亚洲视频黄| 国产精品理论片| 亚洲日韩高清在线亚洲专区| 五月婷婷丁香综合| 亚洲欧美在线看片AI| 欧美.成人.综合在线| 亚洲电影天堂在线国语对白| 91无码人妻精品一区二区蜜桃| 国产精品手机在线播放| 亚洲综合九九| 福利在线免费视频| 91在线无码精品秘九色APP| 高潮毛片免费观看| a级毛片一区二区免费视频| 综合亚洲色图| 国产色伊人| 人妻出轨无码中文一区二区| 99久久精品免费观看国产| 四虎永久在线精品国产免费| 国产 日韩 欧美 第二页| 人禽伦免费交视频网页播放| 乱色熟女综合一区二区| 亚洲欧洲日韩久久狠狠爱| 日本亚洲国产一区二区三区| 欧美第二区| 在线国产欧美| 国产爽妇精品| 四虎精品国产AV二区| 欧美激情综合| 麻豆国产在线观看一区二区 | 朝桐光一区二区| 伊人激情综合网| 91年精品国产福利线观看久久 | 欧美精品v| 亚洲无码精彩视频在线观看| 99精品视频九九精品| 91福利免费视频| 亚洲开心婷婷中文字幕| 99视频在线免费| 国产免费网址| 精品一區二區久久久久久久網站| 在线精品欧美日韩| 亚洲第一网站男人都懂| a级毛片免费看| 久操中文在线| 亚洲欧美日韩中文字幕在线一区| 国产爽爽视频| 亚洲午夜天堂| 91色在线观看| 狠狠色丁香婷婷| 亚洲精品免费网站| 色偷偷男人的天堂亚洲av| 日韩人妻精品一区| 亚洲欧美成人在线视频| 亚洲成aⅴ人片在线影院八| 欧美日韩理论| 天堂成人在线视频| 国产原创自拍不卡第一页| 国产精品亚洲а∨天堂免下载| 国产精品久久久久久影院| 五月婷婷导航| 丁香婷婷综合激情| 99这里只有精品6| 亚洲视频黄| 国产91视频免费| 国产裸舞福利在线视频合集|