怎麼在 Ansible Galaxy 分享 Roles?(上)
Last updated
Last updated
在「23. 怎麼用 Roles 部署 LNMP 網頁應用程式?(下)」裡,我們寫好了部署 TestLink 的 Playbooks,接下來凍仁將分享上傳至 Galaxy 前的注意事項。
範例 lab/ch23/testlink
其實就是個把 Playbooks 拆開的 Role,它真正的程式進入點為 tasks/main.yml
,而 setup.yml
只是為了測試 Playbooks 的正確性而存在的。這也是為什麼凍仁會用 setup.yml
include tasks/main.yml
,再用 tasks/main.yml
include 其它 tasks 的原因。
在「19. 如何維護大型的 Playbooks?」一文時,凍仁建議大家把 Playbooks 給拆開,為的就是要把它打包成 Roles。
此例的 requirements.yml
, setup.yml
只有在作為 Playbooks 用時才會被使用。
在 README.md
裡提供清楚的說明文件。
在 Meta Data (meta/main.yml
) 提供正確的資訊。
在 Meta Data (meta/main.yml
) 寫入 Roles 的相依性 (Dependencies) 設定。
命名變數時,使用 Role 的名稱作為變數的前綴。
藉由 Travis CI 整合測試 Roles。(more)
就上面的例子而言,我們會用
setup.yml
來進行測試。
使用 ansible-galaxy init
指令建立 Role 時會一併產生的檔案之一。
使用 Markdown 格式編寫。
內容會顯示在 README 頁面裡:在 Galaxy 上看到的樣子與 GitHub 相同。
▲ 此為 ansible-galaxy init
產生的 READNE.md 範例。
meta/main.yml
)使用 ansible-galaxy init
指令建立 Role 時會一併產生的檔案之一。
使用 YAML 格式編寫。
內容會顯示在 Details 頁面裡面。
▲ 此為 chusiang.testlink
role 的 meta/main.yml
。
若相依於其它的 role,請於 meta/main.yml
的 dependencies
下方補上。
使用 YAML 格式編寫。
關於 Role Dependencies 可參考 Roles - Role Dependencies | Ansible Documentation 一文。
▲ 此為 chusiang.testlink
role 的 meta/main.yml
。
以上就是要上傳到 Galaxy 前該特別留意的地方,下章凍仁將講解怎麼把 Roles 上傳至 Galaxy。