Ansible 2 -- 6 playbook 管理

可以為playbook中的任務(wù)打tag標(biāo)簽遥赚,方便在ansible-playbook中設(shè)置只執(zhí)行哪些被打上tag的任務(wù)或忽略被打上tag的任務(wù)芦岂。

使用 tag 為 task 分類

tasks:
    - name: make sure apache is running
      service: name=httpd state=started
      tags: apache
    - name: make sure mysql is running
      service: name=mysqld state=started
      tags: mysql

以下是ansible-playbook命令關(guān)于tag的選項(xiàng)卑吭。

--list-tags           # list all available tags
-t TAGS, --tags=TAGS  # only run plays and tasks tagged with these values
--skip-tags=SKIP_TAGS # only run plays and tasks whose tags do not match these values

使用 include击罪,import 和 roles 提高 playbook 的復(fù)用性

如果playbook很大唆香,task很多步氏,或者某task要經(jīng)常使用虐块,可以考慮拆分位獨(dú)立文件俩滥。

Ansible 2.4 起引入 include 和 import 的概念

  • import 是靜態(tài)導(dǎo)入,會(huì)在playbooks解析階段將父和子task變量全部讀取并加載
    import_playbook, import_tasks 等
  • include 是動(dòng)態(tài)導(dǎo)入贺奠,執(zhí)行play之前才加載變量
    include_tasks, include_role 等
導(dǎo)入 task

導(dǎo)入task可以使用
import_tasks:
include_tasks

# playbook.yaml
# -- task/ntupdate.yml
---
     - hosts: centos7
       tasks:
        - import_tasks: task/ntupdate.yaml

# ntupdate.yml
---
     - name: execute ntpdate
       shell: /usr/sbin/ntpdate ntp1.aliyun.com

雖然仍然可以用 include: task/ntupdate.yaml 來直接導(dǎo)入 task 或 playbook 已經(jīng)不推薦這么做霜旧,將來會(huì)被廢棄

導(dǎo)入 playbook

即加載一個(gè)或多個(gè)play
導(dǎo)入playbook可以使用 import_playbook

---
  - name: first demo
    hosts: cloud
    vars:
      name: finley
    tasks:
      - name: execute date cmd
        shell: echo date
      - name: create hello
        shell: touch helloworld.txt
        args:
          creates: /tmp/hello.txt # 存在此文件就不執(zhí)行 shell
      - include_tasks: tasks/task-hello.yml
  - import_playbook: playbooks/web.yml

Role

role 需要一個(gè)特定的目錄結(jié)構(gòu),執(zhí)行時(shí)會(huì)自動(dòng)加載定義好的文件如vars_files,tasks,handles等
通過role進(jìn)行內(nèi)容分組方便與其他用戶分享role儡率。

示例項(xiàng)目結(jié)構(gòu)

site.yml
webservers.yml
fooservers.yml
roles/
   common/
     tasks/
     handlers/
     files/
     templates/
     vars/
     defaults/
     meta/
   webservers/
     tasks/
     defaults/
     meta/
  • tasks目錄:存放task列表挂据。若role要生效,此目錄必須要有一個(gè)主task文件main.yml儿普,在main.yml中可以使用 include包含同目錄(即tasks)中的其他文件崎逃。
  • handlers目錄: 存放handlers的目錄,若要生效眉孩,則文件必須名為main.yml文件个绍。
  • files目錄:在task中執(zhí)行copy或script模塊時(shí)勒葱,如果使用的是相對(duì)路徑,則會(huì)到此目錄中尋找對(duì)應(yīng)的文件巴柿。
  • templates 目錄:在task中執(zhí)行template模塊時(shí)错森,如果使用的是相對(duì)路徑,則會(huì)到此目錄中尋找對(duì)應(yīng)的模塊文 件篮洁。
  • vars目錄:定義專屬于該role的變量,如果要有var文件殃姓,則必須為main.yml文件袁波。
  • defaults 目錄:定義角色默認(rèn)變量,角色默認(rèn)變量的優(yōu)先級(jí)最低蜗侈,會(huì)被任意其他層次的同名變量覆蓋篷牌。如果要有var文件,則必須為main.yml文件踏幻。
  • meta目錄:用于定義角色依賴(dependencies)枷颊,如果要有角色依賴關(guān)系,則文件必須為main.yml该面。

參考

https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夭苗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子隔缀,更是在濱河造成了極大的恐慌题造,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猾瘸,死亡現(xiàn)場(chǎng)離奇詭異界赔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)牵触,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門淮悼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人揽思,你說我怎么就攤上這事袜腥。” “怎么了绰更?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵瞧挤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我儡湾,道長(zhǎng)特恬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任徐钠,我火速辦了婚禮癌刽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己显拜,他們只是感情好衡奥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著远荠,像睡著了一般矮固。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上譬淳,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天档址,我揣著相機(jī)與錄音,去河邊找鬼邻梆。 笑死守伸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浦妄。 我是一名探鬼主播尼摹,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼剂娄!你這毒婦竟也來了蠢涝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤阅懦,失蹤者是張志新(化名)和其女友劉穎惠赫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體故黑,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡儿咱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了场晶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片混埠。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诗轻,靈堂內(nèi)的尸體忽然破棺而出钳宪,到底是詐尸還是另有隱情,我是刑警寧澤扳炬,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布吏颖,位于F島的核電站,受9級(jí)特大地震影響恨樟,放射性物質(zhì)發(fā)生泄漏半醉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一劝术、第九天 我趴在偏房一處隱蔽的房頂上張望缩多。 院中可真熱鬧呆奕,春花似錦、人聲如沸衬吆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逊抡。三九已至姆泻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冒嫡,已是汗流浹背麦射。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灯谣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓蛔琅,卻偏偏與公主長(zhǎng)得像胎许,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罗售,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1)安裝2)常用模塊3)inventory4)playbook(role\tag\template)5) yaml...
    秦記閱讀 4,167評(píng)論 2 5
  • Ansible Ansible version : 2.6.2 ad-hoc命令簡(jiǎn)介 什么是ad-hoc命令辜窑? a...
    洛神鬼道閱讀 2,953評(píng)論 0 1
  • 簡(jiǎn)介 架構(gòu) 原理 組成 ANSIBLE PLAYBOOKS:任務(wù)劇本(任務(wù)集),編排定義Ansible任務(wù)集的配置...
    毛利卷卷發(fā)閱讀 1,062評(píng)論 0 2
  • 讀一本書最好的時(shí)機(jī)是什么時(shí)候寨躁?是你剛買的時(shí)候穆碎,趁著新鮮勁,先了解這本書职恳,繼而馬上閱讀完這本書所禀。如果錯(cuò)過了最好的時(shí)機(jī)...
    謝小路閱讀 1,334評(píng)論 0 3
  • ansible-playbook playbook簡(jiǎn)介 playbook是ansible用于配置,部署放钦,和管理被控...
    bdslinux閱讀 10,891評(píng)論 1 12