對ansible還不是很熟, 大概知道可以把ansible scripts寫得很模組化, 但就遇到一個問題是如何加載我們剛寫的task role呢?
在ansible 中, 預設的 role 的讀取路徑會是如下:
${playbook_dir}/roles/...
${HOME}/.ansible/roles/...
/usr/share/ansible/roles/...
/etc/ansible/roles/...
${playbook_dir}/...
如果在上面的路徑下, 都找不到對應的role時, ansible就會無法執行對應的playbook…
但除了上面的role搜尋路徑以外, 其實我們可以在paybook中直接透過相對路徑去指定role的對應位址.
舉例來說:
我的playbook 資料夾結構為
my-playbook/
roles/
my-role
playbook1
/main.yml
main.yml 的內容中, 可以透過相對路徑來指定我另外撰寫的 my-role
- hosts: all
vars:
foo: "bar"
roles:
- role: "../roles/my-role"