Apache-Httpd

在劇本中使用 Ansible-Galaxy 角色而不是在劇本中使用 ansible-modules 是最佳實踐嗎?

  • December 18, 2018

我有一個 Ansible 劇本,用於在遠端機器上建立 LAMP 環境。

本劇本的一部分涉及安裝 Composer:

- name: Install Composer
 get_url:
   url: https://getcomposer.org/installer
   dest: /tmp/composer-setup.php
 command: php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

我的考慮

ansible-galaxy相反,我正在考慮在劇本中使用以下命令的這些 5 行結構:

ansible-galaxy install geerlingguy.composer

geerlingguy.composer是擁有超過一百萬使用者的最受社區支持的 AG 角色(所以我假設如果出現問題並且 Jeff 目前不在 - 例如,在夏威夷度假或其他什麼的,將會有許多社區成員來解決問題並確保穩定性。

使用它也將縮短我已經相當長的劇本。

我的問題

一般來說,在 Ansible 劇本中將 Ansible-Galaxy 角色與任務和測試一起使用是最佳實踐,而不是劇本中顯然應該實現相同目標的一組 ansible 模組(可能是一些可能無關緊要和不會的冗餘額外內容) t 中斷作為 AG 角色的一部分在那裡)?我會假設是的,因為它更公共和更穩定。

是否使用 Galaxy 提供的角色是您需要在特定環境中評估的決定(對於您正在考慮的每個角色)。

Galaxy 上的優秀角色通常會處理比您的特定角色更多的情況(查看tasks此處的內容,與您的劇本相比),但這些功能是有代價的:您正在向系統添加外部依賴項,並依賴一個社區來處理您的要求。

與開發劇本(或您自己的 Galaxy 角色)相比,您需要查看評估 Galaxy 角色的成本;現在和將來。沒有硬性規定。

引用自:https://unix.stackexchange.com/questions/489630