Ansible 3.0.0

Ansible 釋出 3.0.0 了,之前的版本是 2.10,目前所釋出的 3.0.0 有點特別。 這是新聞稿:Announcing the Community Ansible 3.0.0 Package

為什麼說有點特別呢?

Ansible 2.9 之前,許多的模組跟 plugin 都在 Ansible 專案裡,所以如果模組開發者釋出模組與 plugin 的更新,勢必就要等 Ansible 釋出新版本,使用者才會拿到這更新。

在 Ansible 2.9 之後,Ansible 開發團隊引入 collections ,collection 裡包含了模組、plugin…等等,等於是整理了之前的模組。使用者要使用模組,可以藉由 ansible-galaxy 安裝 collection,就可以得到更新的模組跟 plugin。接下來,Ansible 開發團隊把原本內建的模組跟 plugin (現在是 collections 了) 拆出去成為獨立的 repository,在釋出 2.10 時,才把 ansible-base 與拆出去的 collections 組合起來。

現在新的 3.0.0 則是更進一步,之後 Ansible 會拆為三個部分:

  1. Ansible core,這個就是之前的 ansible-base,是主要的 language 解譯器跟 runtime。版本號碼會照之前 2.9, 2.10, 2.11 來走。
  2. Ansible collections on Galaxy,collection 的版本號碼則是由 collection 開發者來決定。
  3. Ansible community,這個就是前兩者的綜合,大約有 80 幾個 collections,上千個模組跟 plugins。版本號碼變為 3.0.0,也就是這次新聞稿所提到的 Ansible 3.0.0。

好,簡單的說,之後就繼續使用 Ansible community 3.0.0,這就跟之前的 ansible 一樣,有內建的 collection 可以用。有需要使用到更新的 collections ,可以用 ansible-galaxy 來安裝 collection 到 playbook 所在的目錄下。

如果,只使用到幾個 collections,不想裝沒用到的,那就可以裝 ansible-base,然後搭配 ansible-galaxy 來安裝 collections 。

現在二月釋出 3.0.0,依照 Ansible 的 roadmap,很快在五月也要推出正式版的 4.0.0,開發的腳步加快了。 Ansible project 4.0 Roadmap 不過照這樣的速度,很快就會 10.0、11.0,會讓我們這些工程師追版本追到手軟,我希望是可以有 LTS 的版本,讓我們有比較長的緩衝時間可以去適應新版本。