日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ansible之roles(角色)详解

發布時間:2025/4/16 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible之roles(角色)详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

roles介紹

角色(roles)是ansible自1.2版本開始引入的新特性,用于層次性,結構化地組織playbook。roles能夠根據層次型結構自動裝載變量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡單的說,roles就是通過分別將變量、文件、任務、模塊及處理器放置于單獨的目錄中、并可以便捷地include他們的一種機制。角色一般用于基于主機構建服務的場景中、但也可以是用于構建守護進程等場景中。

一個項目的目錄結構

site.yml webservers.yml fooservers.yml roles/common/files/templates/tasks/handlers/vars/defaults/meta/webservers/files/templates/tasks/handlers/vars/defaults/meta/
  • yml文件,用于定義此角色用到的各handler:在handler中使用include包含的其他的handler文件也應該位于此目錄中;
  • files目錄:存放由copy或script等模塊調用的文件;
  • templates目錄:templates模塊會自動在此目錄中尋找Jinja2模板文件;
  • tasks目錄:至少應該包含一個名為main.yml的文件,其定義了此角色的任務列表;此文件可以使用include包含其他的位于此目錄中的task文件;
  • handlers目錄:此目錄中應當包含一個main;
  • vars目錄:應當包含一個main.yml文件,用于定義此角色用到的變量;
  • meta目錄:應當包含一個main.yml文件,用于定義此角色的特殊設定及其依賴關系;ansible 1.3及其以后的版本才支持
  • default目錄:為當前角色設定默認變量時使用此目錄;應當包含一個main.yml文件;

那么一個playbook就可以這樣寫

---- hosts: webserversroles:- common- webservers

這個 playbook 為一個角色 ‘x’ 指定了如下的行為:

  • 如果 roles/x/tasks/main.yml 存在, 其中列出的 tasks 將被添加到 play 中
  • 如果roles/x/handlers/main.yml 存在, 其中列出的 handlers 將被添加到 play 中
  • 如果roles/x/vars/main.yml 存在, 其中列出的 variables 將被添加到 play 中
  • 如果roles/x/meta/main.yml 存在, 其中列出的 “角色依賴” 將被添加到 roles 列表中 (1.3 andlater)
  • 所有 copy tasks 可以引用 roles/x/files/ 中的文件,不需要指明文件的路徑。
  • 所有 scripttasks 可以引用 roles/x/files/ 中的腳本,不需要指明文件的路徑。
  • 所有 template tasks 可以引用roles/x/templates/ 中的文件,不需要指明文件的路徑。
  • 所有 include tasks 可以引用roles/x/tasks/ 中的文件,不需要指明文件的路徑。

如果 roles 目錄下有文件不存在,這些文件將被忽略。比如 roles 目錄下面缺少了 ‘vars/’ 目錄,這也沒關系。

注意:你仍然可以在 playbook 中松散地列出 tasks,vars_files 以及 handlers,這種方式仍然可用,但 roles 是一種很好的具有組織性的功能特性,我們強烈建議使用它。如果你在 playbook 中同時使用 roles 和 tasks,vars_files 或者 handlers,roles 將優先執行。

而且,也可以使用參數化的 roles,這種方式通過添加變量來實現,比如:

---- hosts: webserversroles:- common- { role: foo_app_instance, dir: '/opt/a', port: 5000 }- { role: foo_app_instance, dir: '/opt/b', port: 5001 }

當一些事情不需要頻繁去做時,也可以為 roles 設置觸發條件,像這樣:

---- hosts: webserversroles:- { role: some_role, when: "ansible_os_family == 'RedHat'" }

它的工作方式是:將條件子句應用到 role 中的每一個 task 上。

也可以給role分配指定的標簽,比如

---- hosts: webserversroles:- { role: foo, tags: ["bar", "baz"] }

如果 play 仍然包含有 ‘tasks’ section,這些 tasks 將在所有 roles 應用完成之后才被執行。

也可定義一些 tasks,讓它們在 roles 之前以及之后執行,可以這樣做:

---- hosts: webserverspre_tasks:- shell: echo 'hello'roles:- { role: some_role }tasks:- shell: echo 'still busy'post_tasks:- shell: echo 'goodbye'

關于ansible的角色介紹基本就這些了,在以后工作學習中再遇到相關問題會繼續補充,下邊博文將會針對使用角色一鍵部署靜態網站做演示。

------做運維之前很矯情的小年輕-----

總結

以上是生活随笔為你收集整理的Ansible之roles(角色)详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 老版k8经典电影 | 国产一区日韩精品 | 超碰caoprom | 亚洲特黄特色 | 亚欧成人精品 | 欧美色v | 亚洲少妇一区二区三区 | 九九爱精品视频 | h片网站在线观看 | 美女日批网站 | 老司机久久精品视频 | 亚洲色图一区二区 | 国产精品视频在线看 | 午夜av一区 | 视频在线观看 | 国产精品亚洲一区二区三区在线观看 | 国产精品精品国产 | 欧美揉bbbbb揉bbbbb | 草草影院第一页yycc.com | 日日夜夜爽爽 | 亚洲精品成人在线视频 | 国产依人| 日本一区二区三区网站 | 久久久国产亚洲 | 国产精品成人3p一区二区三区 | 黄色在线免费视频 | 国产又大又粗又爽的毛片 | 美女隐私免费 | 精品国产乱码久久久久久图片 | 一级全黄裸体免费观看视频 | 日本一区二区免费高清视频 | 日本一区二区三区精品视频 | 免费在线不卡视频 | 国内激情自拍 | 一直草| 亚洲熟女乱色一区二区三区 | 日本一区二区在线视频 | 尹人成人 | 国产做受高潮漫动 | 肥臀浪妇太爽了快点再快点 | a国产| 欧洲亚洲一区二区三区 | 日韩电影在线观看一区二区 | 黑人高潮一区二区三区在线看 | 九九热在线免费视频 | a级特黄视频 | 国产精品77777 | 性——交——性——乱免费的 | 手机av免费在线观看 | 五月激情站 | 四虎黄色 | 精品人体无码一区二区三区 | 日韩精品免费视频 | 蜜乳av中文字幕 | 日本xxxx18高清hd | 嫩草视频入口 | av夜夜操 | 国产福利专区 | 欧美黄色录像视频 | 最新av在线网址 | 欧美成人性生活视频 | 午夜久久久 | 青青视频免费观看 | 禁久久精品乱码 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 欧美三级在线播放 | 久久9热| 中文字幕一区二区av | 91精品啪在线观看国产线免费 | 日本精品在线 | 亚洲国产精品久久精品怡红院 | 日韩欧美精品在线播放 | 蜜桃精品久久久久久久免费影院 | 色综合激情 | 国产91精品看黄网站在线观看 | 日韩欧美卡一卡二 | 制服诱惑一区二区三区 | 亚洲熟妇av乱码在线观看 | 岛国av不卡 | 成人免费看片' | 无码任你躁久久久久久老妇 | 日本一区精品视频 | 白嫩初高中害羞小美女 | 国产日韩片 | 欧美成人aaaaa| 秋霞视频一区二区 | 国产亚洲高清视频 | 亚洲成人免费在线观看 | 国产精品网站在线观看 | 亚洲成人aa | 尤物视频在线观看国产性感 | 视频在线观看一区二区三区 | 亚洲av无码精品色午夜 | 男人和女人插插 | 国产麻豆剧传媒精品国产av | 嫩模一区二区三区 | 国产电影一区二区三区 | 欧美福利影院 | 亚洲在线激情 |