ansible 變量傳遞到include

Task Include Files And Encouraging Reuseapache

假設您想在play或playbook中重複使用任務列表。 您能夠使用include文件來執行此操做。 使用include的任務列表是定義系統將要實現的角色的好方法。 請記住,playbook中play的目標是將一組系統映射到多個角色。 讓咱們看看這是什麼樣子ssh

一個task include 文件只包含一個平面的任務列表,以下所示:wordpress

---this

# possibly saved as tasks/foo.ymlrest

 - name: placeholder foo部署

   command: /bin/foo變量

 - name: placeholder barfile

   command: /bin/barservice

include指令看起來像這樣,而且能夠混合在一個playbook中的常規任務: tasks:語法

  - include: tasks/foo.yml 您也能夠將變量傳遞給include。 咱們稱之爲「參數化include」。 例如,要部署到多個wordpress實例,我能夠將全部個人wordpress任務封裝在一個wordpress.yml文件中,並使用以下所示:

tasks:   - include: wordpress.yml wp_user=timmy   - include: wordpress.yml wp_user=alice   - include: wordpress.yml wp_user=bob

從1.0開始,變量也能夠使用替代語法傳遞到包含文件,這也支持結構化變量: tasks:

  - include: wordpress.yml     vars:         wp_user: timmy         ssh_keys:           - keys/one.txt           - keys/two.txt

使用任何一種語法,而後能夠在包含的文件中使用傳入的變量。 咱們將在變量中介紹它們。 你能夠這樣引用它們:

{{ wp_user }} (除了明確傳遞的參數以外,vars部分中的全部變量也能夠在這裏使用。)

include也能夠在'handler'部分使用,例如,若是你想定義如何從新啓動apache,你對全部的Playbook只作一次。 你可能會製做一個看似以下的handlers.yml:

--- # this might be in a file like handlers/handlers.yml - name: restart apache   service: name=apache state=restarted

而在你的main Playbook文件中,只要把它include進來,放到play的底部:

handlers:   - include: handlers/handlers.yml

相關文章
相關標籤/搜索