今天打算講個我個人不太會用到的功能,
但官方好像花蠻多精力做的一個 feature,
那就是 Workflow
(但請容我 demo 後補,今天比較忙來不及寫 demo)
斯斯有兩種,其實 Templates 也有兩種 曝露年齡
我們可以很輕易的在 Add New Templates 的地方找到 [Add workflow template],
不知道在前面介紹 Templates 設定的時候有沒有人注意到
AWX 所謂的 Workflow,
其實就是一連串 Templates 的集合,
你可以像一個 linklist 一樣,以 Templates 為單位,
串接你的 Workflow,
借一張官方文件的示意圖
在 AWX 的概念裡,
Templates 之於 Jobs,
就好比 Workflow Jobs Template 之於 Workflow
為什麼說官方爸爸 aka Redhat 好像對這個功能很上心,
是它還有一個可視化的功能,
可以把你的 Jobs 在圖上拖來拖去,
再借一張官方的圖,長這樣
更棒的是,Workflow 支援 Concurrency 的 Job dispatch,
也就是說如果你有 n 個 test 要做,
可以一口氣灑下去,
等全部作完再一次收完成果
btw ,它也支援 Webhook,原生支援 Webhook 對我來說很重要,
Request on demand 的基礎,
有些 CI tool 還要裝 plugin 才能用 Webhook,
然後 plugin 版號還會跟主程式可能有衝突,
要不然就是沒人 maintain...就是在說 Jenkins
聽起來很棒吧,
但我為什麼我還是不常用甚至覺得 Workflow 很雞肋,
原因是我用 Ansible AWX,
講究的就是一個開發完 playbook 直接無痛搬上 web portal,
我希望在 web portal 有難或是 downtime 的時候,
我還是可以手動出 build、人工執行一鍵執行 playbook,
所以實務上儘管比較麻煩,
我會把大量灑 Jobs 這件事用 Ansible 的 async module 來執行,
還是可以 concurrent 執行,
只是寫起來稍微費事一點
簡單來說,在用不用 Workflow 這個功能,
我是認為 Integrity > Convenience