ansible 變量傳遞到include


Task Include Files And Encouraging Reuse

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

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

---

# possibly saved as tasks/foo.yml

 - name: placeholder foo

   command: /bin/foo

 - name: placeholder bar

   command: /bin/bar

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM