Linux自動化運維(Shell與Ansible)(微課版) 課件 8-2-主機(組)變量和注冊變量_第1頁
Linux自動化運維(Shell與Ansible)(微課版) 課件 8-2-主機(組)變量和注冊變量_第2頁
Linux自動化運維(Shell與Ansible)(微課版) 課件 8-2-主機(組)變量和注冊變量_第3頁
Linux自動化運維(Shell與Ansible)(微課版) 課件 8-2-主機(組)變量和注冊變量_第4頁
Linux自動化運維(Shell與Ansible)(微課版) 課件 8-2-主機(組)變量和注冊變量_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

變量與事實任務2:主機(組)變量、注冊變量01主機和主機組變量主機和主機組變量在Ansible中,可以通過多種方式定義變量,可以在Playbook中定義、在清單文件中定義或者在任務中定義,而使用group_vars和host_vars目錄定義變量可以使代碼更加模塊化、可讀性更強、可維護性更高,并且能夠更好地組織和共享變量。定義主機和主機組變量的首選做法是在與清單文件相同的目錄中,創(chuàng)建group_vars和host_vars兩個目錄,這兩個目錄分別包含用于定義組變量和主機變量的文件。主機和組變量文件必須使用YAML語法,其有效的文件擴展名包括.yml、.yaml、.json等,但擴展名不是必需的。主機和主機組變量使用group_vars和host_vars目錄定義基于主機和主機組的變量文件時,group_vars目錄中定義的變量將自動應用于組內的所有主機,host_vars目錄中定義的變量僅應用于指定的主機。典型的group_vars和host_vars目錄結構和變量文件如下所示:├──group_vars│├──all││├──vars.yml││└──secrets.yml│├──db││└──vars.yml│└──web│└──vars.yml├──host_vars│├──mysqlserver.yml│├──pgserver.yml│├──│└──├──playbook.yml└──inventory└──ansible.cfg主機和主機組變量在group_vars目錄中創(chuàng)建名為all的子目錄,它可以為所有主機設置全局變量。這意味著在all目錄下的變量文件中定義的變量將適用于所有主機,而不僅僅是某個組或某個主機。在下面的清單文件中,有兩個主機組,分別是web組和db組,web組包括兩個主機,分別是、,db組也包括兩個主機,分別是mysqlserver、pgserver。[web][db]mysqlserverpgserver主機和主機組變量group_vars目錄包含按組定義的變量文件,可以在group_vars目錄中分別創(chuàng)建名為web和db的YAML格式文件來定義與組相關的變量。#group_vars/web.ymlhttp_port:80https_port:443#group_vars/db.ymlmysql_version:80pg_version:12host_vars目錄包含按主機定義的變量文件。可以在host_vars目錄中創(chuàng)建一個名為的YAML格式文件來定義與對應主機相關的變量。root_document:/var/www/htmlconfig_file:vhost.conf主機和主機組變量在Playbook文件中編寫任務,可以直接調用變量。----name:Exampleplaybook1hosts:webtasks:-name:PrintHTTPportandHTTPdocumentdebug:msg:"HTTPportis{{http_port}},HTTPdocumentis{{root_document}},HTTPconfigurationfileis{{config_file}}"-name:Exampleplaybook2hosts:dbtasks:-name:Displaydatabaseserverversiondebug:msg:"MySQLversionis{{mysql_version}}andPostgreSQLversionis{{pg_version}}"02注冊變量注冊變量注冊變量是Ansible中的一種特殊變量,用于保存任務執(zhí)行后產生的輸出結果。運維工程師或系統(tǒng)工程師通常會根據模塊的返回值來判斷自動化任務執(zhí)行成功或失敗,但模塊返回值通常不能滿足這個需求,這時就可以使用注冊變量來保存任務的輸出結果,以便在后續(xù)任務中使用。注冊變量的主要作用是在后續(xù)的任務或模塊中使用模塊的執(zhí)行結果,實現模塊之間的數據共享。通過使用注冊變量,可以避免在不同的模塊中重復執(zhí)行相同的任務。同時,注冊變量也可以用于任務執(zhí)行狀態(tài)的檢查和錯誤信息的處理,以提高任務執(zhí)行的可靠性和穩(wěn)定性。注冊變量可以是簡單變量、列表變量、字典變量或復雜嵌套數據結構。注冊變量存儲在內存中,只在當前Playbook運行期間有效。注冊變量注冊變量使用register關鍵字在任務中定義,任務可將結果保存到指定的變量中。在示例中,第1個任務使用shell模塊運行了df-h命令,并將輸出結果存儲到了一個名為disk_space的注冊變量中;在第2個任務中,使用debug模塊輸出了disk_space變量的stdout_lines屬性,該屬性包含df-h命令的輸出結果;第3個任務使用stat模塊檢查/path/to/file.txt這個文件是否存在,并將結果存儲在file_stat變量中;第4個任務使用debug模塊輸出一條消息,消息內容是Fileexists:{{file_stat.stat.exists}},這里使用了{{file_stat.stat.exists}}來判斷文件是否存在,如果存在則輸出true,否則輸出false。-name:Getdiskspaceshell:df-hregister:disk_space-name:Printdiskspacedebug:var:disk_space.stdout_lines-name:Checkiffileexistsstat:pa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論