版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Linux自動化運維項目7:AnsiblePlaybook基本語法
學(xué)習(xí)目標(biāo)【知識目標(biāo)】了解YAML和JSON基本格式。了解Ansible常用的內(nèi)置模塊。了解ansible-doc命令基本語法。了解AnsiblePlaybook基本語法?!炯寄苣繕?biāo)】掌握ansible-doc命令的使用方法,能夠查看Ansible模塊的示例和文檔信息。掌握AnsibleAdHoc命令的使用方法,能夠使用命令執(zhí)行臨時任務(wù)。掌握AnsiblePlaybook的使用方法,能夠編寫基本的AnsiblePlaybook并實施Play任務(wù)?!舅刭|(zhì)目標(biāo)】培養(yǎng)讀者的團(tuán)隊合作精神、協(xié)同創(chuàng)新能力,使其能夠在團(tuán)隊中積極合作、有效溝通。培養(yǎng)讀者分析和評估信息的能力,使其能夠運用邏輯思維解決復(fù)雜問題。AnsiblePlaybook基本語法任務(wù)1:AdHoc命令目錄/Contents010203AdHoc命令簡介AdHoc命令通過模塊執(zhí)行任務(wù)查看模塊文檔信息01AdHoc命令簡介AdHoc命令簡介使用Ansible進(jìn)行自動化管理時,通常有兩種方式,一種是通過Playbook文件進(jìn)行管理,另一種則是使用AdHoc命令進(jìn)行管理。在計算機(jī)領(lǐng)域中,AdHoc通常指的是一種無須事先準(zhǔn)備的、快速解決問題的方法。Ansible提供AdHoc命令,該命令可以快速執(zhí)行單個任務(wù),無須編寫Playbook即可在線操作。AdHoc命令雖然存在一些局限性,但對于快速執(zhí)行簡單任務(wù)而言非常實用。對于Ansible自動化的專家來說,使用AdHoc命令可以更加高效地操作服務(wù)器;當(dāng)然,對于更加復(fù)雜的場景,則需要使用AnsiblePlaybook來充分發(fā)揮Ansible的作用。AdHoc命令簡介AdHoc命令集由/usr/bin/ansible實現(xiàn),其基本語法如下:在使用AdHoc命令時,需要使用host-pattern參數(shù)來指定要在哪些受管主機(jī)上運行命令,host-pattern可以是清單文件中的特定主機(jī)或主機(jī)組。使用--list-hosts選項可以列出與特定主機(jī)模式匹配的主機(jī),如果需要指定其他清單文件位置,可以使用-i選項替換默認(rèn)位置。使用-m選項可以指定要在目標(biāo)主機(jī)上運行的模塊名稱。模塊是實現(xiàn)任務(wù)的小程序,有些模塊不需要額外的信息,而有些模塊需要使用額外的參數(shù)來指定操作細(xì)節(jié)。使用-a選項以帶引號字符串的形式傳遞參數(shù)列表。ansible[pattern]-m[module]-a"[moduleoptions]“ansible<host-pattern>[-mmodule_name][-aargs]AdHoc命令簡介AdHoc命令常見的參數(shù)或選項:序號參數(shù)或選項描述1<host-pattern>表示目標(biāo)主機(jī)或主機(jī)組的模式,可以使用IP地址、主機(jī)名或主機(jī)組名稱等方式指定。如ansibleall-mping表示對所有主機(jī)執(zhí)行ping命令2-mmodule_name表示要執(zhí)行的模塊的名稱,如setup、debug、yum、shell等3-aargs表示要傳遞給模塊的參數(shù),以字符串的形式表示,多個參數(shù)可以使用空格分隔。如ansibleall-mshell-a"ls-l/var/log"表示在所有主機(jī)上執(zhí)行l(wèi)s命令4-iinventory表示指定主機(jī)清單文件的路徑,默認(rèn)為/etc/ansible/hosts5-fforks表示同時運行的進(jìn)程數(shù),默認(rèn)為56-uREMOTE_USER表示指定要在遠(yuǎn)程主機(jī)上運行命令的遠(yuǎn)程用戶,如果未指定,則默認(rèn)使用當(dāng)前用戶7-k--ask-pass
表示使用遠(yuǎn)程主機(jī)的賬戶和密碼進(jìn)行身份驗證8-K--ask-become-pass表示在遠(yuǎn)程主機(jī)上使用sudo命令來執(zhí)行任務(wù),需要在執(zhí)行命令時提供遠(yuǎn)程用戶的提權(quán)密碼9-b表示使用sudo權(quán)限執(zhí)行任務(wù),如果不需要輸入sudo密碼,需要在遠(yuǎn)程主機(jī)上配置sudo權(quán)限NOPASSWD10--ask-vault-pass表示要求輸入Vault密碼進(jìn)行解密11--vault-password-file=vault_password_file表示指定Vault密碼文件的路徑12--syntax-check表示檢查語法錯誤13--list-hosts表示列出與模式匹配的主機(jī)名02AdHoc命令通過模塊執(zhí)行任務(wù)AdHoc命令通過模塊執(zhí)行任務(wù)AdHoc命令通常使用模塊來執(zhí)行特定任務(wù)。Ansible提供了大量的模塊。這些模塊已經(jīng)經(jīng)過測試,并作為Ansible標(biāo)準(zhǔn)安裝的一部分。使用這些模塊可以輕松地執(zhí)行許多常見的系統(tǒng)管理任務(wù),而無須自己編寫腳本或命令。Ansible的模塊庫包括大量的內(nèi)置模塊,這些模塊對許多常見操作提供了支持,例如文件操作、用戶管理、包管理、網(wǎng)絡(luò)操作、監(jiān)視等。這些模塊可以輕松地與其他Ansible組件(例如Playbook、角色、任務(wù)等)結(jié)合使用,以實現(xiàn)靈活、可重復(fù)使用的自動化工作流程。AdHoc命令通過模塊執(zhí)行任務(wù)Ansible常用模塊:序號模塊名描述主要選項模塊命令示例1copy用于將本地文件復(fù)制到遠(yuǎn)程受管節(jié)點src:指定要復(fù)制到遠(yuǎn)程節(jié)點主機(jī)的本地文件的路徑,可以是絕對路徑或相對路徑。如果路徑是一個目錄,將進(jìn)行遞歸復(fù)制。在這種情況下,路徑以“/”結(jié)尾,只有該目錄的內(nèi)部內(nèi)容會被復(fù)制到目標(biāo)位置。如果不以“/”結(jié)尾,整個目錄及其所有內(nèi)容都將被復(fù)制。dest:指定復(fù)制的文件在遠(yuǎn)程節(jié)點主機(jī)上的路徑,必須是遠(yuǎn)程節(jié)點主機(jī)的絕對路徑。content:在控制節(jié)點上生成文件的內(nèi)容,與src參數(shù)不能同時使用。owner:所屬用戶。group:所屬用戶組ansiblewebservers-mcopy-a"src=/etc/hostsdest=/tmp/hosts"2file管理遠(yuǎn)程主機(jī)上的文件或目錄,例如創(chuàng)建或刪除文件或目錄、更改文件或目錄的權(quán)限或所有者等path:指定要操作的文件或目錄的路徑。state:指定文件或目錄的狀態(tài),可選值有absent、directory、touch、link、hard、file等。mode:指定文件或目錄的權(quán)限模式,可以是數(shù)字或字符串形式,例如0644或u+rwx、g+rx等owner:文件的所屬用戶。group:文件的所屬用戶組ansiblewebservers-mfile-a"path=/etc/foo.confmode=600owner=foogroup=foo"AdHoc命令通過模塊執(zhí)行任務(wù)Ansible常用模塊:序號模塊名描述主要選項模塊命令示例3lineinfile在文件中查找指定的行,并進(jìn)行添加、刪除或替換等操作path:指定要修改的文件的路徑。line:指定要插入或替換到文件中的行內(nèi)容。state:指定要執(zhí)行的操作,可選值為present或absent。regexp:用于匹配需要修改或刪除的行的正則表達(dá)式。insertafter:指定在哪行之后插入新行ansiblewebservers-mlineinfile-a"path=/etc/
foo.confregexp='^Setting'line='Setting=NewValue'"4synchro-nizesynchronize模塊是對rsync的封裝,以同步本地和遠(yuǎn)程主機(jī)的文件或目錄src:指定要同步到目標(biāo)主機(jī)的源主機(jī)的路徑。dest:指定從源主機(jī)同步的目標(biāo)主機(jī)的路徑。mode:指定同步模式,可選值有push、pull,默認(rèn)為pushansiblewebservers-msynchronize-a"src=/
path/to/sourcedest=/
path/to/destination"5package用于管理軟件包,包括安裝、升級、刪除等操作,可自動檢測操作系統(tǒng)的包管理器name:軟件包名稱。state:軟件包狀態(tài),present表示已安裝,latest表示最新版本,absent表示未安裝ansiblewebservers-mpackage-a"name=apache2state=present"6yum使用yum包管理器管理軟件包name:指定軟件包名稱。state:指定軟件包的狀態(tài),可選項有present、absent、latest等。enablerepo:指定要啟用的yum源的名稱ansiblewebservers-myum-a"name=httpdstate=present"AdHoc命令通過模塊執(zhí)行任務(wù)Ansible常用模塊:序號模塊名描述主要選項模塊命令示例7apt使用apt包管理器管理軟件包name:指定軟件包的名稱。state:指定軟件包的狀態(tài),可選項有present、absent、latest等ansiblewebservers-mapt-a"name=apache2state=present"8dnf使用dnf包管理器管理軟件包name:要操作的軟件包的名稱。state:指定軟件包的狀態(tài),可選項是present、latest、absent等ansiblewebservers-mdnf-a"name=httpdstate=present"9pip使用pip包管理器管理Python包name:指定Python包名稱。version:指定Python包版本號。state:指定Python包的狀態(tài),可選項有present、absent、latest等ansiblewebservers-mpip-a"name=djangostate=present"10firewalld管理防火墻規(guī)則service:指定需要添加或移除的服務(wù)的名稱。state:指定服務(wù)狀態(tài),可選項為enabled、disabled等。immediate:是否立即生效。permanent:是否永久生效ansiblewebservers-mfirewalld-a"service=
httpstate=enabled"11reboot重新啟動一個機(jī)器,等待它關(guān)機(jī)、重新啟動并響應(yīng)命令reboot_timeout:重啟等待時間的限制,規(guī)定了等待機(jī)器重啟并響應(yīng)測試命令的最大秒數(shù)。默認(rèn)情況下,它的值為600s。reboot_command:用于指定重啟機(jī)器的命令和參數(shù)。在使用此選項時,pre_reboot_delay、post_reboot_
delay和msg將被忽略ansiblewebservers-mrebootAdHoc命令通過模塊執(zhí)行任務(wù)序號模塊名描述主要選項模塊命令示例12service管理系統(tǒng)服務(wù)name:指定服務(wù)的名稱。state:指定服務(wù)的狀態(tài),可選項有started、stopped、restarted、reloaded等。enabled:指定服務(wù)是否開機(jī)自啟動ansiblewebservers-mservice-a"name=httpdstate=started"13user管理用戶name:指定用戶的名稱。uid:指定用戶的UID。state:指定用戶的狀態(tài),比如present、absent等ansiblewebservers-muser-a"name=foostate=present"14get_url從遠(yuǎn)程URL下載文件并將其放置在遠(yuǎn)程主機(jī)上的指定路徑下url:需要下載文件的URL。dest:遠(yuǎn)程主機(jī)上文件的目標(biāo)路徑。url_username:如果URL需要驗證,則表示提供的用戶名。url_password:如果URL需要驗證,則表示提供的密碼ansiblewebservers-mget_url-a"url=http://
/file.tar.gzdest=/tmp/file.tar.gz"15nmcli管理網(wǎng)絡(luò)設(shè)備,配置和管理不同類型的網(wǎng)絡(luò)連接conn_name:指定網(wǎng)絡(luò)連接的名稱。ifname:指定網(wǎng)絡(luò)接口的名稱。type:指定網(wǎng)絡(luò)連接的類型,如ethernet、teams、bonds等。ip4:指定IPv4地址和相關(guān)屬性。gw4:指定IPv4網(wǎng)關(guān)。state:指定網(wǎng)絡(luò)連接的狀態(tài)。autoconnect:指定網(wǎng)絡(luò)連接是否應(yīng)該在系統(tǒng)引導(dǎo)時自動連接ansibletarget-mnmcli-a"conn_name=my-eth1ifname=eth1type=ethernetip4=00/24gw4=state=presentautoconnect=true"Ansible常用模塊:AdHoc命令通過模塊執(zhí)行任務(wù)序號模塊名描述主要選項模塊命令示例16uri與HTTP和HTTPSWeb服務(wù)交互,支持摘要、HTTP基本身份驗證機(jī)制和WSSEHTTP身份驗證機(jī)制url:指定要執(zhí)行HTTP請求的URL。user:HTTP身份驗證用戶名。password:HTTP身份驗證密碼。method:請求方法,支持GET、POST、PUT、DELETE、HEAD和OPTIONS等。force_basic_auth:是否強制使用HTTP基本身份驗證。status_code:預(yù)期的HTTP狀態(tài)碼,可用于檢查HTTP請求是否成功。dest:指定下載文件的目標(biāo)路徑ansibletarget-muri-a"url=/file.zipdest=/tmp/file.zip"17blockinfile在文件中添加、修改或刪除塊內(nèi)容path:指定要操作的文件路徑。
block:指定要添加、修改或刪除的文本塊。state:指定文本塊的狀態(tài),可選值為present、absent。marker:用于標(biāo)記開始和結(jié)束位置的字符串。backup:指定是否創(chuàng)建包含時間戳信息的備份文件。insertbefore:指定在哪行之前插入新文本塊。insertafter:指定在哪行之后插入新文本塊。
create:指定是否創(chuàng)建文件ansibletarget-mblockinfile-a"path=/var/www/html/index.htmlmarker='<!--{mark}ANSIBLEMANAGEDBLOCK-->'insertafter='<body>'block='<h1>Welcometo{{ansible_hostname}}</h1>\n<p>Lastupdatedon{{ansible_date_time.iso8601}}</p>'"Ansible常用模塊:AdHoc命令通過模塊執(zhí)行任務(wù)在AdHoc命令中,使用-m選項指定要執(zhí)行的模塊。例如,使用ping模塊來檢查清單文件中的所有受管主機(jī)是否可達(dá),執(zhí)行如下命令:[rhce@control~]$ansibleall-mping上述示例會在所有受管主機(jī)上執(zhí)行ping模塊,以測試主機(jī)之間的網(wǎng)絡(luò)連接性。當(dāng)Ansible運行模塊時,它將在遠(yuǎn)程主機(jī)上自動部署并執(zhí)行模塊代碼,并將結(jié)果返回給控制節(jié)點。在AdHoc命令中,使用yum包管理器,在受管節(jié)點上安裝、更新或刪除軟件包。執(zhí)行如下命令:[rhce@control~]$ansiblewebservers-myum-a"name=httpdstate=present"在上述示例中,-a選項用于傳遞命令行參數(shù)給執(zhí)行的模塊。這些參數(shù)以字符串列表的形式傳遞,且必須使用引號(單引號或雙引號)標(biāo)識,以便將整個字符串列表作為一個參數(shù)傳遞給模塊。如果需要指定多個參數(shù),則以引號標(biāo)識的、空格分隔的列表形式提供。[rhce@control~]$ansiblewebservers-mfile-a"path=/path/to/test/docmode=755owner=rhcegroup=rhcestate=directory"03查看模塊文檔信息查看模塊文檔信息模塊是Ansible自動化管理中的重要組成部分。自動化運維工程師需要熟悉和掌握模塊的功能和使用方法,才能高效地控制遠(yuǎn)程主機(jī)執(zhí)行自動化任務(wù)。Ansible提供了ansible-doc命令行工具,可以幫助用戶快速查找模塊的參數(shù)、使用方法、示例等,方便用戶快速了解模塊的功能和使用方法,以及編寫正確的AnsiblePlaybook來完成各種自動化任務(wù)。ansible-doc命令的基本語法如下:ansible-doc[options]module_name其中,module_name表示要查詢的模塊名稱,可以是Ansible自帶的模塊,也可以是自定義的模塊。查看模塊文檔信息序號參數(shù)或選項描述1-l、--list列出所有可用的模塊名稱2-F、--list-files顯示所有插件名稱及其源文件,不包括摘要信息3-t{TYPE}、--type{TYPE}指定要查看的插件類型??捎玫牟寮愋桶╞ecome、cache、callback、cliconf、connection、httpapi、inventory、lookup、netconf、shell、vars、module、strategy、test、filter、role和keyword等4-s、--snippet顯示指定類型插件的示例代碼片段??捎妙愋桶╥nventory、lookup和module等5-rROLES_PATH、--roles-pathROLES_PATH指定角色所在的目錄路徑6-MMODULE_PATH、--module-pathMODULE_PATH
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025店面經(jīng)營承包合同
- 2025綜合布線施工合同審核版
- 2025關(guān)于工礦產(chǎn)品采購的合同協(xié)議范本
- 辦公園區(qū)勤雜工聘用合同
- 2025水運貨物承運合同登記單
- 河流開發(fā)堰塘整治施工合同
- 消防噴淋系統(tǒng)安裝合同
- 家電企業(yè)資料員勞動合同模板
- 2025年度環(huán)保設(shè)施投標(biāo)擔(dān)保證明合同模板6篇
- 商標(biāo)許可合同管理
- 廣告宣傳物料廣告宣傳物料配送方案
- 2024年長春醫(yī)學(xué)高等專科學(xué)校單招職業(yè)適應(yīng)性測試題庫及答案解析
- 品質(zhì)部組織架構(gòu)圖構(gòu)
- 解析幾何-2023上海市高三數(shù)學(xué)一模匯編【教師版】
- 項目維修維保方案
- 上海市浦東新區(qū)2023-2024學(xué)年一年級上學(xué)期期末考試數(shù)學(xué)試題
- 插圖在小學(xué)英語口語教學(xué)中的運用
- 前列腺增生藥物治療
- 人工智能知識圖譜(歸納導(dǎo)圖)
- 滴滴補貼方案
- 民宿建筑設(shè)計方案
評論
0/150
提交評論