版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
角色和集合任務4:AnsibleGalaxy部署角色目錄/Contents01020304AnsibleGalaxy簡介AnsibleGalaxy命令行工具使用ansible-galaxy命令管理角色使用requirements.yml文件安裝角色01AnsibleGalaxy簡介AnsibleGalaxy簡介AnsibleGalaxy是Ansible社區(qū)維護的開源平臺,用戶可訪問平臺網站來搜索、評估、下載和共享Ansible角色和集合等內容,從而更快速地啟動自動化項目。通過AnsibleGalaxy主頁上的“Documentation”,可以進入描述如何使用AnsibleGalaxy的頁面,其中包含如何從AnsibleGalaxy下載和使用角色和集合的內容,該頁面也提供關于如何開發(fā)角色和集合并上傳到AnsibleGalaxy的說明。AnsibleGalaxy主頁如圖所示。AnsibleGalaxy簡介在AnsibleGalaxy主頁上可以找到各種用于基礎設施部署、應用程序部署以及日常任務管理的角色或集合,這些內容通常由社區(qū)成員創(chuàng)建、共享和維護。通過AnsibleGalaxy主頁上左側的“Search”,用戶可以查看在AnsibleGalaxy上發(fā)布的內容。以角色為例,通過角色的名稱或通過其他角色屬性來搜索Ansible角色,搜索結果會按照BestMatch分數(shù)降序排列,此分數(shù)會依據角色質量、角色受歡迎程度、搜索條件進行計算,用戶可以按照不同的標簽、作者、星級和下載量等來篩選和排序搜索結果。AnsibleGalaxy會統(tǒng)計各個角色和集合的下載次數(shù),以及它們的GitHub存儲庫擁有的watchers、forks和stars的數(shù)量。用戶可以根據這些信息來確定角色或者集合的開發(fā)活躍程度,以及Ansible角色或集合在社區(qū)中的受歡迎程度。使用AnsibleGalaxy的搜索頁面可以找到適用于用戶項目的Ansible角色或者集合,然后按照說明文檔將它們下載到Ansible管理主機上。同時,用戶也可以通過AnsibleGalaxy來共享自己創(chuàng)建的Ansible內容,從而為整個社區(qū)做出貢獻,幫助其他用戶更好地利用Ansible實現(xiàn)自動化。AnsibleGalaxy簡介AnsibleGalaxy還提供了一些擴展功能,比如評級、評論和標簽等,可以幫助用戶更好地了解和選擇適用于自己項目的內容。通過搜索框右側的“Filters”下拉菜單,可以按照Collection、Role、ContentName、DownloadCount、NamespaceName、Tags、Platforms等來搜索。如圖顯示了在執(zhí)行docker關鍵字搜索并按照下載量排序后,AnsibleGalaxy顯示的搜索結果。02AnsibleGalaxy命令行工具AnsibleGalaxy命令行工具ansible-galaxy命令是管理Ansible角色和集合的重要工具,可以用于創(chuàng)建、下載、發(fā)布、安裝、刪除、打包、搜索角色和集合等操作。ansible-galaxy命令的基本語法如下:ansible-galaxy<subcommand>[options][arguments]其中,subcommand表示要執(zhí)行的子命令,可以是collection或role;options表示可選的命令選項,用于指定一些特定的行為或配置信息;arguments表示子命令需要的參數(shù),用于執(zhí)行特定的操作。ansible-galaxy命令中與role子命令相關的選項如表所示。序號選項描述1roleinit用于初始化新的Ansible角色。該命令會生成角色基本文件和目錄結構,以便用戶構建角色內容。比如ansible-galaxyroleinitmyrole命令會在當前目錄下創(chuàng)建一個名為myrole的角色,參數(shù)-init-path可以指定角色創(chuàng)建的路徑(默認為當前工作目錄)2rolelist列出所有已經安裝的角色,以及它們的名稱、作者和版本號,比如ansible-galaxyrolelist命令會列出所有已經安裝的角色AnsibleGalaxy命令行工具序號選項描述3rolesearch在AnsibleGalaxy上搜索角色,可以根據名稱、作者、標簽等進行搜索。比如ansible-galaxyrolesearchnginx將搜索名稱包含nginx的角色,ansible-galaxyrolesearch--galaxy-tagsweb,nginx將按web、nginx標簽搜索角色4roleimport將一個已經存在于GitHub上的角色導入AnsibleGalaxy。該命令需要GitHub用戶名和倉庫名稱作為參數(shù),并通過GitHubAPI獲取角色代碼,然后將其上傳到AnsibleGalaxy上。比如執(zhí)行ansible-galaxyroleimportgithub_usernamemyrole--role-namemynewrole
命令后,AnsibleGalaxy將會創(chuàng)建一個名為mynewrole的新角色,并將GitHub倉庫github_username/myrole中的代碼上傳到該角色中5rolesetup用于在AnsibleGalaxy中設置GitHub集成。通過設置GitHub集成,可以將GitHub存儲庫與AnsibleGalaxy角色關聯(lián)起來,以便在GitHub上進行代碼更改時,自動更新AnsibleGalaxy角色。在執(zhí)行ansible-galaxyrolesetup命令時,需要提供以下參數(shù):source用于指定GitHub集成的源,可以是github或gitlab;github_user用于指定GitHub用戶名;github_repo用于指定要與AnsibleGalaxy角色關聯(lián)的GitHub倉庫名稱;secret用于指定用于驗證Webhook的密鑰6roleinfo用于獲取角色的詳細信息,包括作者、依賴項、標簽、許可證、支持的平臺等,比如執(zhí)行ansible-galaxyroleinforhel-system-roles.podman命令,顯示結果如下:Role:rhel-system-roles.podmandescription:Roleformanagingpodmandependencies:[]galaxy_info:author:RichardMegginsonrmeggins@company:RedHat,Inc.galaxy_tags:['podman','containers']license:MITmin_ansible_version:2.9platforms:[{'name':'Fedora','versions':['all']},{'name':'EL','versions':['8','9']}]path:('/home/rhce/.ansible/roles','/usr/share/ansible/roles','/etc/ansible/roles')其中包括角色的詳細信息,包括作者為RichardMegginson,公司為RedHat,Inc.,標簽為podman和containers,許可證為MIT,Ansible最低版本為2.9,支持的平臺為Fedora和EL8、EL9。同時,還列出了Ansible角色搜索路徑列表7roleinstall用于從AnsibleGalaxy或其他源安裝Ansible角色,執(zhí)行該命令可以將角色下載到本地,并安裝到指定的Ansible角色路徑中,以便在AnsiblePlaybook中使用。比如執(zhí)行ansible-galaxyroleinstallgeerlingguy.apache命令將從AnsibleGalaxy安裝geerlingguy.apache角色。如果默認情況下未指定角色路徑,則該角色被安裝在/etc/ansible/roles目錄中。如果需要將其安裝在其他位置,可以通過-p或--roles-path參數(shù)指定,比如ansible-galaxyroleinstall-p/path/to/rolesgeerlingguy.apache。如果指定的角色已經存在,但想要覆蓋它,則可以使用-f或--force參數(shù)強制覆蓋,比如ansible-galaxyroleinstall-fgeerlingguy.apache。執(zhí)行ansible-galaxyroleinstall--role-filerequirements.yml命令將從requirements.yml文件中讀取角色列表,并將其安裝在默認的Ansible角色路徑中8roleremove用于從本地系統(tǒng)中刪除一個或多個Ansible角色。該命令可以接收一個或多個角色名稱作為參數(shù),并將這些角色從指定的Ansible角色路徑中刪除。比如執(zhí)行命令ansible-galaxyroleremoveapachemysql將刪除名為apache和mysql的兩個角色9roledelete用于從AnsibleGalaxy上刪除一個指定的角色。該命令需要指定要刪除角色的GitHub用戶名和存儲庫名稱,以及可選的一些參數(shù)來設置操作。比如執(zhí)行ansible-galaxyroledeletegeerlingguyapache將從AnsibleGalaxy上刪除geerlingguy.apache角色,該角色的存儲庫位于GitHub上的geerlingguy/ansible-role-apache。刪除角色是一個不可逆的操作。在執(zhí)行此命令之前,請確保真正需要刪除該角色,并且已經備份了該角色的相關文件ansible-galaxy命令中與role子命令相關的選項如表所示。03ansible-galaxy命令管理角色使用ansible-galaxy命令管理角色ansible-galaxy命令是Ansible自帶的工具,可用于從AnsibleGalaxy或直接從基于Git的SCM(源代碼管理)安裝角色。還可以使用它創(chuàng)建新角色、刪除角色或在AnsibleGalaxy網站上執(zhí)行任務。默認情況下,該命令行工具使用作為服務器地址與AnsibleGalaxy網站API通信。如果用戶在企業(yè)內部部署了私有AnsibleGalaxy服務器,可以使用--server選項指定它的地址或者使用ansible.cfg文件永久地設置AnsibleGalaxy服務器選項。安裝角色前,可以在AnsibleGalaxy搜索需要安裝的角色,或者通過命令搜索角色。[rhce@controlproject-roles]$ansible-galaxysearchgeerlingguy.mysqlFound1rolesmatchingyoursearch:NameDescription---------------geerlingguy.mysqlMySQLServer-InstallandconfigureMySQLserveronRHEL/CentOSandDebian/Ubuntu.使用ansible-galaxy命令管理角色使用ansible-galaxyinstall<role_name>安裝角色。使用list選項顯示安裝在roles_path中的每個角色的名稱和版本信息。[rhce@controlproject-roles]$ansible-galaxyrolelist#/home/rhce/ansible/project-roles/roles-apache,(unknownversion)-haproxy,(unknownversion)-phpinfo,(unknownversion)-geerlingguy.mysql,4.3.2[rhce@controlproject-roles]$ansible-galaxyinstallgeerlingguy.mysql-downloadingrole'mysql',ownedbygeerlingguy-downloadingrolefrom/api/v2/roles/8341-extractinggeerlingguy.mysqlto/etc/ansible/roles/geerlingguy.mysql-geerlingguy.mysql(1.9.10)wasinstalledsuccessfully使用ansible-galaxy命令管理角色在Playbook文件中,通過roles關鍵字來指定使用geerlingguy.mysql角色。使用remove選項從roles_path中刪除角色。[rhce@controlproject-roles]$ansible-galaxyremovegeerlingguy.mysql-successfullyremovedgeerlingguy.mysql[rhce@controlproject-roles]$ansible-galaxyrolelist#/home/rhce/ansible/project-roles/roles-apache,(unknownversion)-haproxy,(unknownversion)-phpinfo,(unknownversion)-name:InstallandconfigureMySQLserverhosts:db_serverbecome:trueroles:-geerlingguy.mysql04使用requirements.yml文件安裝角色使用requirements.yml文件安裝角色為了方便地管理和部署多個角色及其依賴項,可以在requirements.yml文件中定義角色及其版本號來自動下載并安裝這些角色及其依賴項。requirements.yml是一個YAML格式的文件,其中包含一個或多個角色及其版本號,文件中的角色可以設定一個或多個屬性。其主要屬性如表所示。序號屬性描述1src角色的來源,如果從AnsibleGalaxy下載,格式為namespace.role_name,或者提供指向基于Git的SCM存儲庫的URL2scm指定版本控制系統(tǒng),默認為Git方式。如果角色托管在AnsibleGalaxy中,或者以tar歸檔形式托管在Web服務器上,則省略scm屬性3version指定下載的角色的版本,可以提供發(fā)布的標簽值、提交的哈希值或分支名稱。如果倉庫中沒有設置默認分支,則默認為master分支4name將用指定的名稱下載角色。從AnsibleGalaxy下載時默認為AnsibleGalaxy名稱,否則,默認為存儲庫的名稱使用requirements.yml文件安裝角色在requirements.yml文件中,每個角色至少需要指定src屬性,表示角色的來源,其他屬性,比如version、scm和name是可選的,可以根據需要進行指定。以下是requirements.yml文件的具體示例。-name:nginxsrc:geerlingguy.nginxversion:2.5.0-name:mysqlsrc:/ansible/mysql.gitscm:gitversion:1.0.0-name:apachesrc:geerlingguy.apache-name:nginxsrc:git+file:///home/bennojoy/nginx#fromawebserver,where
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招投標項目信息安全
- 藝術品收藏文件管理
- 環(huán)保型合資鐵路建設標準
- 現(xiàn)代化養(yǎng)豬場設施安裝合同
- 沙漠治理植樹造林施工合同
- 化學反應水車租賃協(xié)議
- 汽車制造企業(yè)技術聘用模板
- 扶貧項目招投標目錄
- 暖通工程安裝合同模板
- 婚慶場地短期租賃協(xié)議
- 貴州省普通話考試說話題目30篇經典范文
- 最新RBT214-2017檢驗檢測機構資質認定全套體系文件匯編(質量手冊+程序文件)
- 《水產動物營養(yǎng)與飼料學》課件第6課-能量營養(yǎng)
- 班主任先進工作經驗交流分享班主任工作經驗交流稿
- 第四章離心鑄造
- 朗讀技巧—停連、重音、語氣(課堂PPT)
- 西亞教學設計與反思
- 乙酸乙酯的反應器設計流程圖
- EM277的DP通訊使用詳解
- 耐壓絕緣測試報告
- 杭州市區(qū)汽車客運站臨時加班管理規(guī)定
評論
0/150
提交評論