Linux自動化運(yùn)維(Shell與Ansible)(微課版) 課件 11-5-集合簡介_第1頁
Linux自動化運(yùn)維(Shell與Ansible)(微課版) 課件 11-5-集合簡介_第2頁
Linux自動化運(yùn)維(Shell與Ansible)(微課版) 課件 11-5-集合簡介_第3頁
Linux自動化運(yùn)維(Shell與Ansible)(微課版) 課件 11-5-集合簡介_第4頁
Linux自動化運(yùn)維(Shell與Ansible)(微課版) 課件 11-5-集合簡介_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

角色和集合任務(wù)5:集合簡介目錄/Contents01020304集合的基本概念集合路徑集合的目錄結(jié)構(gòu)安裝集合05在Playbook中使用集合01集合基本概念集合基本概念A(yù)nsible自動化內(nèi)容通常以Playbook或者角色的形式進(jìn)行組織和共享。隨著Ansible的發(fā)展和應(yīng)用場景的增多,這種方式已經(jīng)變得不夠靈活,也不便于擴(kuò)展。Ansible集合提供了一種新的打包和分發(fā)Ansible內(nèi)容的格式以及組織和共享Ansible內(nèi)容的方法。一個集合可以包含多個Ansible角色、模塊、插件、Playbook等,這些內(nèi)容可以組合在一起,形成一個單一的打包文件。集合提供了更好的版本控制和依賴管理功能,使用戶可以更輕松地構(gòu)建、共享和重復(fù)使用自動化任務(wù)和解決方案。Ansible2.9及之后的版本支持Ansible集合。在AnsibleBase2.10和AnsibleCore2.11中,上游Ansible將大多數(shù)模塊從核心Ansible代碼中拆分出來,并將它們放入集合。紅帽AnsibleAutomationPlatform(AAP)2.2基于AnsibleCore2.13提供自動化執(zhí)行環(huán)境,繼承了集合這一功能。集合可以由任何人創(chuàng)建,可以是公共的或私有的,并通過發(fā)行服務(wù)器(如AnsibleGalaxy服務(wù)器)進(jìn)行共享和分發(fā)。公共集合可以在AnsibleGalaxy上找到并安裝,而私有集合可以通過私有AutomationHub實(shí)例進(jìn)行分發(fā)。集合還可以在紅帽自動化中心(RedHatAutomationHub)上進(jìn)行認(rèn)證。經(jīng)過紅帽測試和認(rèn)證后的集合,可作為企業(yè)級自動化解決方案的一部分。02集合路徑集合路徑在Ansible中,集合路徑用于指定Ansible應(yīng)該在哪些目錄中查找集合。默認(rèn)情況下,Ansible會在以下目錄中查找集合。/usr/share/ansible/collections~/.ansible/collections./collections其中,/usr/share/ansible/collections目錄是系統(tǒng)級別的集合目錄;~/.ansible/collections目錄是用戶級別的集合目錄;./collections目錄是當(dāng)前工作目錄中的集合目錄。如果要將額外的集合路徑添加到搜索路徑中,則可以在ansible.cfg文件中指定collections_path選項(xiàng)來添加,它可以包含一個或多個以冒號分隔的目錄路徑。在查找集合時,Ansible將按照指定的順序搜索這些目錄,并加載找到的第一個匹配的集合。如果未指定此選項(xiàng),則使用默認(rèn)的集合路徑。[defaults]collections_path=/path/to/extra/collections:/another/path/to/collections上述示例將添加/path/to/extra/collections和/another/path/to/collections兩個目錄到集合路徑中。在搜索集合時,Ansible將按照指定的順序查找這些目錄。集合路徑collections_scan_sys_path選項(xiàng)用于設(shè)置是否在系統(tǒng)路徑中掃描集合。如果將其設(shè)置為False,則Ansible不會在系統(tǒng)路徑中掃描集合。如果未指定此選項(xiàng),則默認(rèn)為True。以下示例禁用了在系統(tǒng)路徑中掃描集合。[defaults]collections_scan_sys_path=False需要注意的是,如果禁用了在系統(tǒng)路徑中掃描集合,則必須將所有需要使用的集合都添加到collections_path中,否則Ansible將無法找到這些集合。在使用AnsibleGalaxy安裝集合時,可以使用-p或--collections-path參數(shù)指定集合安裝路徑。ansible-galaxycollectioninstallcommunity.general-p/path/to/collections03集合目錄結(jié)構(gòu)集合目錄結(jié)構(gòu)集合是一種可重用的Ansible內(nèi)容,它包含模塊、插件、角色和其他相關(guān)內(nèi)容。在集合的根目錄下有一個名為galaxy.yml的文件,這個文件包含AnsibleGalaxy和其他工具打包、構(gòu)建及發(fā)布集合所需的所有元數(shù)據(jù)。常見的Ansible集合目錄結(jié)構(gòu)如下。collection/├──docs/├──galaxy.yml├──meta/│└──runtime.yml├──plugins/│├──modules/││└──module1.py│├──inventory/│└──.../├──README.md├──roles/│├──role1/│├──role2/│└──.../├──playbooks/│├──files/│├──vars/│├──templates/│└──tasks/└──tests/集合目錄結(jié)構(gòu)集合的主要目錄和文件。序號主要目錄和文件描述1galaxy.ymlgalaxy.yml文件必須包含在集合的根目錄下,用于定義集合的元數(shù)據(jù)信息,如名稱、版

本、作者、許可證等2docsdocs目錄包含集合的文檔及示例3pluginsplugins目錄包含集合的插件,如模塊、過濾器、動態(tài)發(fā)現(xiàn)腳本等4rolesroles目錄包含集合內(nèi)的所有角色,每個角色都有一個獨(dú)立的目錄,包含該角色的所有文件和目錄,如任務(wù)、變量、模板等5playbooksplaybooks目錄包含集合的Playbook,每個Playbook都是一個獨(dú)立的YAML文件6teststests目錄包含集合的測試文件,測試文件可以用于單元測試、集成測試等7metameta目錄包含關(guān)于集合的元數(shù)據(jù)信息,如依賴、支持的平臺等8runtime.ymlruntime.yml文件包含運(yùn)行時配置信息,如要求的Ansible版本、依賴關(guān)系等04安裝集合安裝集合默認(rèn)情況下,ansible-galaxycollectioninstall使用

作為AnsibleGalaxy服務(wù)器。如果使用非默認(rèn)的AnsibleGalaxy服務(wù)器,則需要在ansible.cfg中配置AnsibleGalaxy服務(wù)器列表,或者使用--server命令行參數(shù)在server_list中選擇一個顯式的AnsibleGalaxy服務(wù)器,并且該參數(shù)的值應(yīng)與服務(wù)器的名稱匹配。如果使用的服務(wù)器不在服務(wù)器列表中,則需要將該值設(shè)置為訪問該服務(wù)器的URL,服務(wù)器列表中的所有服務(wù)器都將被忽略。[galaxy]#取消此注釋以使用用戶自己的AnsibleGalaxy服務(wù)器#server_list=:80,#server_list=#使用默認(rèn)AnsibleGalaxy服務(wù)器server_list=[galaxy]server_list=my_org_hub,release_galaxy,test_galaxy,my_galaxy_ng[galaxy_server.my_org_hub]url=https://automation.my_org/username=my_userpassword=my_pass[galaxy_server.release_galaxy]url=/token=my_tokenansible-galaxy安裝集合從AnsibleGalaxy中安裝集合時,可以使用以下命令:ansible-galaxycollectioninstallmy_namespace.my_collection將集合升級為AnsibleGalaxy服務(wù)器上最新的可用版本時,可以使用--upgrade選項(xiàng):ansible-galaxycollectioninstallmy_namespace.my_collection--upgradeansible-galaxy命令還可以從本地或遠(yuǎn)程tar歸檔文件或Git存儲庫中安裝集合。Git存儲庫必須有一個有效的galaxy.yml或MANIFEST.json文件,用于提供有關(guān)集合的元數(shù)據(jù),如其名稱空間和版本號。從本地tar歸檔文件中安裝集合:ansible-galaxycollectioninstallmy_namespace-my_collection-1.0.0.tar.gz-p./collections在上述示例中,已經(jīng)在本地構(gòu)建了一個名為my_namespace.my_collection的集合,并將其打包成一個名為my_namespace-my_collection-1.0.0.tar.gz

的tar

歸檔文件。使用上述命令,可將此歸檔文件安裝到Ansible集合路徑的./collections目錄中。ansible-galaxy安裝集合從遠(yuǎn)程Git存儲庫中安裝集合:ansible-galaxycollectioninstallgit+/ansible-collections/community.general.git,master默認(rèn)情況下,ansible-galaxy會安裝最新可用版本,如果要安裝特定版本,則可以添加版本范圍標(biāo)識符,如要安裝3.4.3版本的community.docker集合:[rhce@controlproject]$ansible-galaxycollectioninstallcommunity.docker:==3.4.3-p./collectionsStartinggalaxycollectioninstallprocessProcessinstalldependencymapStartingcollectioninstallprocessDownloading/download/community-docker-3.4.3.tar.gzto/home/rhce/.ansible/tmp/ansible-local-1650348s3o31sya/tmpeetss6is/community-docker-3.4.3-m7sxdaswInstalling'community.docker:3.4.3'to'/home/rhce/.ansible/collections/ansible_collections/community/docker'community.docker:3.4.3wasinstalledsuccessfully通過requirements.yml文件安裝角色如果自動化項(xiàng)目需要額外的ansible內(nèi)容集合,則可以在項(xiàng)目目錄中創(chuàng)建一個collections/requirements.yml文件,在其中列出項(xiàng)目所需的所有集合。自動化控制器會檢測到該文件,并在執(zhí)行Playbook之前自動安裝指定的集合。requirements.yml文件是一個YAML文件,其中包含一個名為collections的字典鍵,它的值是要安裝的集合列表,每個列表項(xiàng)還可以指定要安裝的集合的特定版本。安裝集合示例如下。---collections:-name:community.mysql-name:awx.awxversion:22.2.0-name:/opt/ansible/download/community-zabbix-2.0.0.tar.gz-name:http://www.opencloud.fun/collections/prometheus-0.5.0.tar.gz-name:git+/ansible-collections/community.general.gitversion:main通過requirements.yml文件安裝角色ansible-galaxy命令可以使用collections/requirements.yml文件來安裝所有這些集合。使用-r或--requirements-file選項(xiàng)指定requirements.yml文件,并使用-p或--collections選項(xiàng)將Ansible內(nèi)容集合安裝到collections目錄中。[rhce@controlproject]$ansible-galaxycollectioninstall-rcollections/requirements.yml-p./collections在ansible.cfg文件中,可以指定一個或多個集合源,以定義ansible-galaxy命令從哪里獲取Ansible內(nèi)容集合,具體示例如下。[galaxy]server_list=/api,galaxy[galaxy_server.release_galaxy]url=/token=my_token[galaxy_server.my_galaxy_ng]url=http://my_galaxy_ng:8000/api/automation-hub/auth_url=http://my_keycloak:8080/auth/protocol/openid-connect/tokenclient_id=galaxy-ngtoken=my_keycloak_access_token在上述示例中,[galaxy]配置段使用server_list選項(xiàng)指定了兩個集合源,分別是私有/api和galaxy,ansible-galaxy命令將按照配置的順序依次嘗試這些集合源來獲取所需的Ansible內(nèi)容集合。05在Playbook中使用集合在Playbook中使用集合通過完全限定集合名稱引用集合內(nèi)容將Ansible集合安裝到自動化項(xiàng)目中以后,可以使用集合中的模塊、角色及插件來執(zhí)行任務(wù),需要在Playbook中指定集合的名稱、模塊或角色的名稱。示例代碼如下。-na

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論