




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
使用Ansible服務(wù)實(shí)現(xiàn)自動(dòng)化運(yùn)維任課教師:XXX課程概述Ansible介紹與安裝AnsibleIntroductionAndInstallation01設(shè)置主機(jī)清單SetHostList02運(yùn)行臨時(shí)命令RunTemporaryCommand03劇本文件實(shí)戰(zhàn)ScriptDocumentActualCombat04創(chuàng)建及使用角色CreatingAndUsingRoles05創(chuàng)建和使用邏輯卷CreateAndUseLogicalVolumes06判斷主機(jī)組名DetermineHostGroupName07管理文件屬性ManageFileProperties08管理密碼庫文件ManagePasswordLibraryFiles09前言0301Ansible是最近幾年特別火的一款開源運(yùn)維自動(dòng)化工具,它能夠幫助運(yùn)維人員肉眼可見地提高工作效率,并減少人為失誤。Ansible有上千個(gè)功能豐富且實(shí)用的模塊,而且有詳盡的幫助信息可供查閱,因此即便是小白用戶也可以輕松上手。02介紹Ansible服務(wù)的產(chǎn)生背景、相關(guān)術(shù)語以及主機(jī)清單的配置,深入學(xué)習(xí)ping、yum、firewalld、service、template、setup、lvol、lvg、copy、file、debug等十余個(gè)常用的Ansible模塊,以滿足日常工作中的需要。03采用動(dòng)手實(shí)操的方式介紹了從系統(tǒng)中加載角色、從外部環(huán)境獲取角色以及自行創(chuàng)建角色的方法,學(xué)到如何在生產(chǎn)環(huán)境中掌控任務(wù)工作流程。03通過精心編寫的playbook(劇本)文件,以動(dòng)手實(shí)操的方式介紹了創(chuàng)建邏輯卷設(shè)備,依據(jù)主機(jī)改寫文件、管理文件屬性的方法。以使用Ansible的vault對(duì)變量以及劇本文件進(jìn)行加密來收尾。Ansible介紹與安裝AnsibleIntroductionAndInstallationPARTONEAnsible介紹05Ansible目前是運(yùn)維自動(dòng)化工具中最簡(jiǎn)單、容易上手的一款優(yōu)秀軟件,能夠用來管理各種資源。用戶可以使用Ansible自動(dòng)部署應(yīng)用程序,以此實(shí)現(xiàn)IT基礎(chǔ)架構(gòu)的全面部署。Ansible相較于Chef、Puppet、SaltStack等C/S(客戶端/服務(wù)器)架構(gòu)的自動(dòng)化工具來講,盡管Ansible的性能并不是最好的,但由于它基于SSH遠(yuǎn)程會(huì)話協(xié)議,不需要客戶端程序,只要知道受管主機(jī)的賬號(hào)密碼,就能直接用SSH協(xié)議進(jìn)行遠(yuǎn)程控制,因此使用起來優(yōu)勢(shì)明顯。優(yōu)勢(shì)Ansible服務(wù)本身并沒有批量部署的功能,它僅僅是一個(gè)框架,真正具有批量部署能力的是其所運(yùn)行的模塊。Ansible內(nèi)置了上千個(gè)模塊,會(huì)在安裝Ansible時(shí)一并安裝,通過調(diào)用指定的模塊,就能實(shí)現(xiàn)特定的功能。模塊Ansible的專用術(shù)語對(duì)照表06英文中文含義controlnode控制節(jié)點(diǎn)安裝了Ansible服務(wù)的主機(jī),也稱為Ansible控制端,主要是用來發(fā)布運(yùn)行任務(wù)、調(diào)用功能模塊,以及對(duì)其他主機(jī)進(jìn)行批量控制managednode受控節(jié)點(diǎn)被Ansible服務(wù)所管理的主機(jī),也被稱為受控主機(jī)或客戶端,是模塊命令的被執(zhí)行對(duì)象inventory主機(jī)清單受控節(jié)點(diǎn)的列表,可以是IP地址、主機(jī)名或者域名module模塊用于實(shí)現(xiàn)特定功能的代碼;Ansiblie默認(rèn)帶有上千款模塊;可以在AnsibleGalaxy中選擇更多的模塊task任務(wù)要在Ansible客戶端上執(zhí)行的操作playbook劇本通過YAML語言編寫的可重復(fù)執(zhí)行的任務(wù)列表;把重復(fù)性的操作寫入到劇本文件中后,下次可直接調(diào)用劇本文件來執(zhí)行這些操作role角色從Ansible1.2版本開始引入的新特性,用于結(jié)構(gòu)化地組織劇本;通過調(diào)用角色可實(shí)現(xiàn)一連串的功能部署Ansible服務(wù)程序07在“虛擬機(jī)設(shè)置”界面中,將“網(wǎng)絡(luò)適配器”的“網(wǎng)絡(luò)連接”選項(xiàng)調(diào)整為“橋接模式”,并將系統(tǒng)的網(wǎng)卡設(shè)置成“Automatic(DHCP)”模式。第1步在原有軟件倉庫配置的下方,追加EPEL擴(kuò)展軟件包安裝源的信息。第2步安裝!安裝完畢后,Ansible服務(wù)便默認(rèn)已經(jīng)啟動(dòng)。使用--version參數(shù)可以看到Ansible服務(wù)的版本及配置信息。第3步部署Ansible服務(wù)程序08將網(wǎng)卡設(shè)置為“Automatic(DHCP)”模式將“網(wǎng)絡(luò)連接”設(shè)置為“橋接模式”設(shè)置主機(jī)清單PARTTWOSetHostListAnsible服務(wù)主配置文件優(yōu)先級(jí)順序10優(yōu)先級(jí)級(jí)文件位置高./ansible.cfg
中~/ansible.cfg
低/etc/ansible/ansible.cfg
設(shè)置主機(jī)清單11既然Ansible服務(wù)是用于實(shí)現(xiàn)主機(jī)批量自動(dòng)化控制的管理工具,受管的主機(jī)一定不是一兩臺(tái)臺(tái),而是數(shù)十臺(tái)甚至成百上千臺(tái),那么主機(jī)清單(inventory)在生產(chǎn)環(huán)境中就可以幫上大忙了。用戶可以把要管理的主機(jī)IP地址預(yù)先寫入/etc/ansible/hosts文件,這樣后續(xù)再通過執(zhí)行ansible命令來執(zhí)行任務(wù)時(shí)就自動(dòng)包含這些主機(jī)了,也就不需要每次都重復(fù)輸入受管主機(jī)的地址了。主機(jī)清單受管主機(jī)的信息操作系統(tǒng)IP地址功能用途RHEL80devRHEL81testRHEL82prodRHEL83prodRHEL84balancers設(shè)置主機(jī)清單12受管主機(jī)的系統(tǒng)默認(rèn)使用RHEL8,這是為了避免大家在準(zhǔn)備實(shí)驗(yàn)機(jī)階段產(chǎn)生歧義而給出的建議值,也可以用其他Linux系統(tǒng)。主機(jī)清單文件/etc/ansible/hosts中默認(rèn)存在大量的注釋信息,建議全部刪除,然后替換成實(shí)驗(yàn)信息。第1步為了增加實(shí)驗(yàn)難度,“通吃”生產(chǎn)環(huán)境中的常見需求,我們又為這5臺(tái)主機(jī)分別規(guī)劃了功能用途,有開發(fā)機(jī)(dev)、測(cè)試機(jī)(test)、產(chǎn)品機(jī)(prod)(兩臺(tái))和負(fù)載均衡機(jī)(balancers)。在對(duì)主機(jī)進(jìn)行分組標(biāo)注后,后期在管理時(shí)就方便多了。第2步主機(jī)清單文件在修改后會(huì)立即生效,一般使用“ansible-inventory--graph”命令以結(jié)構(gòu)化的方式顯示出受管主機(jī)的信息。因?yàn)槲覀儗?duì)受管主機(jī)進(jìn)行了分組,因此這種方式非常便于我們的閱讀。第3步設(shè)置主機(jī)清單13sshd服務(wù)在初次連接時(shí)會(huì)要求用戶接受一次對(duì)方主機(jī)的指紋信息。準(zhǔn)備輸入受管主機(jī)的賬號(hào)和密碼。用戶只需要將對(duì)應(yīng)的變量及信息填寫到主機(jī)清單文件中,在執(zhí)行任務(wù)時(shí)便會(huì)自動(dòng)對(duì)賬號(hào)和密碼進(jìn)行匹配,而不用每次重復(fù)輸入它們。繼續(xù)修改主機(jī)清單文件。第4步將Ansible主配置文件中的第71行設(shè)置成默認(rèn)不需要SSH協(xié)議的指紋驗(yàn)證,以及將第107行設(shè)置成默認(rèn)執(zhí)行劇本時(shí)所使用的管理員名稱為root。第5步不需要重啟服務(wù),在以上操作完全搞定后就可以開始后面的實(shí)驗(yàn)了。將網(wǎng)絡(luò)適配器修改回“僅主機(jī)模式”以及0/24的IP地址。在修改完成后重啟網(wǎng)卡,然后自行在主機(jī)之間執(zhí)行ping操作。保證主機(jī)之間的網(wǎng)絡(luò)能夠互通是后續(xù)實(shí)驗(yàn)的基石。第6步設(shè)置主機(jī)清單14將網(wǎng)絡(luò)適配器改回“僅主機(jī)模式”Ansible常用變量匯總參數(shù)作用ansible_ssh_host受管主機(jī)名ansible_ssh_port端口號(hào)ansible_ssh_user默認(rèn)賬號(hào)ansible_ssh_pass默認(rèn)密碼ansible_shell_typeShell終端類型運(yùn)行臨時(shí)命令RunTemporaryCommandPARTTHREE運(yùn)行臨時(shí)命令16Ansible服務(wù)的強(qiáng)大之處在于只需要一條命令,便可以操控成千上萬臺(tái)的主機(jī)節(jié)點(diǎn),而ansible命令便是最得力的工具之一。Ansible服務(wù)實(shí)際上只是一個(gè)框架,能夠完成工作的是模塊化功能代碼。Ansible的常用模塊大致有20多個(gè)。Ansible服務(wù)在Ansible服務(wù)中,ansible是用于執(zhí)行臨時(shí)任務(wù)的命令。在使用ansible命令時(shí),必須指明受管主機(jī)的信息,如果已經(jīng)設(shè)置過主機(jī)清單文件(/etc/ansible/hosts),則可以使用all參數(shù)來指代全體受管主機(jī),或是用dev、test等主機(jī)組名稱來指代某一組的主機(jī)。用來做什么ansible命令常用的語法格式為“ansible受管主機(jī)節(jié)點(diǎn)-m模塊名稱[-a模塊參數(shù)]”,常見的參數(shù)如表16-6所示。其中,-a是要傳遞給模塊的參數(shù),只有功能極其簡(jiǎn)單的模塊才不需要額外參數(shù),所以大多情況下-m與-a參數(shù)都會(huì)同時(shí)出現(xiàn)。語法格式Ansible服務(wù)的常用模塊名稱及作用17模塊名稱模塊作用ping檢查受管主機(jī)的網(wǎng)絡(luò)是否能夠連通yum安裝、更新及卸載軟件包yum_repository管理主機(jī)的軟件倉庫配置文件template復(fù)制模板文件到受管主機(jī)copy新建、修改及復(fù)制文件user創(chuàng)建、修改及刪除用戶group創(chuàng)建、修改及刪除用戶組service啟動(dòng)、關(guān)閉及查看服務(wù)狀態(tài)get_url從網(wǎng)絡(luò)中下載文件file設(shè)置文件權(quán)限及創(chuàng)建快捷方式cron添加、修改及刪除計(jì)劃任務(wù)command直接執(zhí)行用戶指定的命令shell直接執(zhí)行用戶指定的命令(支持特殊字符)debug輸出調(diào)試或報(bào)錯(cuò)信息mount掛載硬盤設(shè)備文件filesystem格式化硬盤設(shè)備文件lineinfile通過正則表達(dá)式修改文件內(nèi)容setup收集受管主機(jī)上的系統(tǒng)及變量信息firewalld添加、修改及刪除防火墻策略lvg管理主機(jī)的物理卷及卷組設(shè)備lvol管理主機(jī)的邏輯卷設(shè)備ansible命令的常用參數(shù)18參數(shù)作用-k手動(dòng)輸入SSH協(xié)議的密碼-I指定主機(jī)清單文件-m指定要使用的模塊名-M指定要使用的模塊路徑-S使用su命令-T設(shè)置SSH協(xié)議的連接超時(shí)時(shí)間-a設(shè)置傳遞給模塊的參數(shù)--version查看版本信息-h幫助信息新增軟件倉庫的信息19倉庫名稱EX294_BASE倉庫描述EX294basesoftware倉庫地址file:///media/cdrom/BaseOSGPG簽名啟用GPG密鑰文件file:///media/cdrom/RPM-GPG-KEY-redhat-release劇本文件實(shí)戰(zhàn)ScriptDocumentActualCombatPARTFOUR劇本文件實(shí)戰(zhàn)21variable用于定義劇本執(zhí)行時(shí)要用到的變量。target用于定義要執(zhí)行劇本的主機(jī)范圍。12劇本文件結(jié)構(gòu)task用于定義將在遠(yuǎn)程主機(jī)上執(zhí)行的任務(wù)列表。3Ansible服務(wù)的劇本(playbook)文件采用YAML語言編寫,具有強(qiáng)制性的格式規(guī)范,它通過空格將不同信息分組,因此有時(shí)會(huì)因一兩個(gè)空格錯(cuò)位而導(dǎo)致報(bào)錯(cuò)。YAML文件的開頭需要先寫3個(gè)減號(hào)(---),多個(gè)分組的信息需要間隔一致才能執(zhí)行,而且上下也要對(duì)齊,后綴名一般為.yml。劇本文件在執(zhí)行后,會(huì)在屏幕上輸出運(yùn)行界面,內(nèi)容會(huì)根據(jù)工作的不同而變化。在運(yùn)行界面中,綠色表示成功,黃色表示執(zhí)行成功并進(jìn)行了修改,而紅色則表示執(zhí)行失敗。YAML語言handler用于定義執(zhí)行完成后需要調(diào)用的后續(xù)任務(wù)。4一個(gè)劇本正確的寫法22[root@linuxprobe~]#vimpackages.yml----name:安裝軟件包hosts:dev,test,prodtasks:-name:oneyum:name:mariadbstate:latest[root@linuxprobe~]#YAML語言編寫的Ansible劇本文件會(huì)按照從上到下的順序自動(dòng)運(yùn)行,其形式類似于Shell腳本,但格式有嚴(yán)格的要求。name字段表示此項(xiàng)play(動(dòng)作)的名字,用于在執(zhí)行過程中提示用戶執(zhí)行到了哪一步,以及幫助管理員在日后閱讀時(shí)能想起這段代碼的作用。hosts字段表示要在哪些主機(jī)上執(zhí)行該劇本,多個(gè)主機(jī)組之間用逗號(hào)間隔;如果需要對(duì)全部主機(jī)進(jìn)行操作,則使用all參數(shù)。tasks字段用于定義要執(zhí)行的任務(wù),每個(gè)任務(wù)都要有一個(gè)獨(dú)立的name字段進(jìn)行命名,并且每個(gè)任務(wù)的name字段和模塊名稱都要嚴(yán)格上下對(duì)齊,參數(shù)要單獨(dú)縮進(jìn)。創(chuàng)建及使用角色CreatingAndUsingRolesPARTFIVE創(chuàng)建及使用角色24角色(role)這一功能則是自Ansible1.2版本開始引入的新特性,用于層次性、結(jié)構(gòu)化地組織劇本。角色功能分別把變量、文件、任務(wù)、模塊及處理器配置放在各個(gè)獨(dú)立的目錄中,然后對(duì)其進(jìn)行便捷加載。角色的定義Ansible服務(wù)的角色功能類似于編程中的封裝技術(shù)—將具體的功能封裝起來,用戶不僅可以方便地調(diào)用它,而且甚至可以不用完全理解其中的原理。技術(shù)封裝角色的好處就在于將劇本組織成了一個(gè)簡(jiǎn)潔的、可重復(fù)調(diào)用的抽象對(duì)象,使得用戶把注意力放到劇本的宏觀大局上,統(tǒng)籌各個(gè)關(guān)鍵性任務(wù),只有在需要時(shí)才去深入了解細(xì)節(jié)。角色的好處角色的獲取方法25在使用RHEL系統(tǒng)的內(nèi)置角色時(shí),我們不需要聯(lián)網(wǎng)就能實(shí)現(xiàn)。用戶只需要配置好軟件倉庫的配置文件,然后安裝包含系統(tǒng)角色的軟件包rhel-system-roles,隨后便可以在系統(tǒng)中找到它們了,然后就能夠使用劇本文件調(diào)用角色了。加載系統(tǒng)內(nèi)置角色AnsibleGalaxy是Ansible的一個(gè)官方社區(qū),用于共享角色和功能代碼,用戶可以在網(wǎng)站自由地共享和下載Ansible角色。該社區(qū)是管理和使用角色的不二之選。從外部環(huán)境獲取角色除了能夠使用系統(tǒng)自帶的角色和從AnsibleGalaxy中獲取的角色之外,也可以自行創(chuàng)建符合工作需求的角色。這種定制化的編寫工作能夠更好地貼合生產(chǎn)環(huán)境的實(shí)際情況,但難度也會(huì)稍高一些。自行創(chuàng)建角色加載系統(tǒng)內(nèi)置角色26角色名稱作用rhel-system-roles.kdump配置kdump崩潰恢復(fù)服務(wù)work配置網(wǎng)絡(luò)接口rhel-system-roles.selinux配置SELinux策略及模式rhel-system-roles.timesync配置網(wǎng)絡(luò)時(shí)間協(xié)議rhel-system-roles.postfix配置郵件傳輸服務(wù)rhel-system-roles.firewall配置防火墻服務(wù)rhel-system-roles.tuned配置系統(tǒng)調(diào)優(yōu)選項(xiàng)timesync_ntp_servers變量的參數(shù)含義Ansible常用變量匯總參數(shù)作用hostnameNTP服務(wù)器的主機(jī)名iburst啟用快速同步從外部環(huán)境獲取角色27AnsibleGalaxy的官網(wǎng)首頁面在搜索界面中找到的nginx角色信息nginx角色的詳情頁自行創(chuàng)建角色28目錄含義defaults包含角色變量的默認(rèn)值(優(yōu)先級(jí)低)files包含角色執(zhí)行任務(wù)時(shí)所引用的靜態(tài)文件handlers包含角色的處理程序定義meta包含角色的作者、許可證、平臺(tái)和依賴關(guān)系等信息tasks包含角色所執(zhí)行的任務(wù)templates包含角色任務(wù)所使用的Jinja2模板tests包含用于測(cè)試角色的劇本文件vars包含角色變量的默認(rèn)值(優(yōu)先級(jí)高)Ansible常用變量匯總隨機(jī)訪問一臺(tái)主機(jī)的網(wǎng)站主頁面29創(chuàng)建和使用邏輯卷PARTSIXCreateAndUseLogicalVolumes創(chuàng)建和使用邏輯卷31創(chuàng)建一個(gè)能批量、自動(dòng)管理邏輯卷設(shè)備的劇本,不但能大大提高硬盤設(shè)備的管理效率,而且還能避免手動(dòng)創(chuàng)建帶來的錯(cuò)誤。邏輯卷設(shè)備Ansible模塊化的功能讓操作更標(biāo)準(zhǔn),只要在執(zhí)行過程中無報(bào)錯(cuò),那么便會(huì)依據(jù)遠(yuǎn)程主機(jī)的系統(tǒng)版本及配置自動(dòng)做出判斷和操作,不用擔(dān)心因系統(tǒng)變化而導(dǎo)致命令失效的問題。讓操作更標(biāo)準(zhǔn)Ansible服務(wù)在執(zhí)行劇本文件時(shí)會(huì)進(jìn)行判斷:如果該文件或該設(shè)備已經(jīng)被創(chuàng)建過,或是某個(gè)動(dòng)作(play)已經(jīng)被執(zhí)行過,則絕對(duì)不會(huì)再重復(fù)執(zhí)行;而使用Shell腳本有可能導(dǎo)致設(shè)備被重復(fù)格式化,導(dǎo)致數(shù)據(jù)丟失。進(jìn)行判斷創(chuàng)建和使用邏輯卷32添加一塊新硬盤新硬盤添加完畢設(shè)置硬盤類型判斷主機(jī)組名DetermineHostGroupNamePARTSEVEN判斷主機(jī)組名34若主機(jī)在dev分組中,則修改/etc/issue文件內(nèi)容為Development;1需求若主機(jī)在prod分組中,則修改/etc/issue文件內(nèi)容為Production。3若主機(jī)在test分組中,則修改/etc/issue文件內(nèi)容為Test;2管理文件屬性ManageFilePropertiesPARTEIGHTfile模塊的基本參數(shù)36path參數(shù)定義了文件的路徑group參數(shù)定義了文件所屬組src參數(shù)定義了源文件的路徑mode參數(shù)定義了文件權(quán)限owner參數(shù)定義了文件所有者dest參數(shù)定義了目標(biāo)文件的路徑123456state參數(shù)則定義了文件類型7Ansible服務(wù)將常用的文件管理功能都合并到了file模塊中,大家不用再為了尋找模塊而“東奔西跑”了。管理密碼庫文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于動(dòng)物接種疫苗的調(diào)查問卷
- 2025年中醫(yī)藥行業(yè)分析:廣西各市中醫(yī)藥產(chǎn)業(yè)發(fā)展不均衡
- 遼寧別墅防水施工方案
- 陽東基礎(chǔ)加固施工方案
- 人體測(cè)溫系統(tǒng)施工方案
- 2025年陜西歷史特崗試題及答案
- 6-7歲寶寶閱讀書目
- 5句英語祝福語簡(jiǎn)短
- 4年級(jí)下冊(cè)1~6單詞表譯林版
- 地球內(nèi)部介紹50字
- 綠野仙蹤(導(dǎo)讀課)課件
- 小學(xué)生防溺水安全教育主題班會(huì)ppt市公開課一等獎(jiǎng)省名師優(yōu)質(zhì)課賽課一等獎(jiǎng)?wù)n件
- 中國近代海關(guān)史課件
- 《人衛(wèi)版第九版內(nèi)科學(xué)心力衰竭》課件PPT
- 中藥熱鹽包熱熨講稿
- 目視檢測(cè)VT報(bào)告
- 四川省中小流域暴雨洪水計(jì)算
- 水泥熟料巖相分析
- 雜詩十二首其二陶淵明
- 第五屆大廣賽獲獎(jiǎng)作品
- 《廣告攝影》課件第五講 食品廣告拍攝與后期制作
評(píng)論
0/150
提交評(píng)論