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