Ansible
Jenkins Ansible:如何將 Ansible 資源提供給 slave
我們計劃使用 jenkins 和 ansible 來管理我們的環境:一個 jenkins master 和一些 jenkins slave。奴隸有 ansible deployt。
ansible 劇本和角色是從中央源生成的 - 與 jenkins 管道作業相同。我們生成所有內容的發布:Jenkins 管道和 Ansible 劇本和角色。通常我們在 Nexus 或 Subversion 中生成發布工件(作為標籤)。
將管道連接到 jenkins 很容易(JOB-DSL 或來自 SCM)。
我的問題:如何將發布劇本和角色提供給需要的詹金斯奴隸。
我們考慮的選項:
- 在發佈時檢查所有從屬伺服器並安裝新版本。缺點:奴隸可能是動態的;需要確保所有從站都具有正確的版本。
- 在每個劇本呼叫中獲取資源。缺點:即使是很小的事情也需要下載 ansible 劇本和角色。
您對此有何看法?
將劇本提供給從站的常用方法是使用 SCM。由於 playbook 很容易依賴於特定的 Ansible 版本,我建議在 Jenkins slave 上的Docker 容器內執行 Ansible playbook ,而不是嘗試維護 Ansible 執行檔和依賴項。這樣,您可以固定 Ansible 版本的 playbook 並管理 Ansible 的其他執行時依賴項。