在剧本中使用 Ansible-Galaxy 角色而不是在剧本中使用 ansible-modules 是最佳实践吗?

在剧本中使用 Ansible-Galaxy 角色而不是在剧本中使用 ansible-modules 是最佳实践吗?

我有一个 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 角色,拥有超过 100 万用户(所以我假设如果出现问题并且 Jeff 目前不在身边 - 比如说,去夏威夷度假或其他什么地方,将会有许多社区成员来解决问题)问题并确保稳定性。

使用这个也会缩短我已经很长的剧本。

我的问题

一般来说,最好的做法是在 Ansible 剧本中使用 Ansible-Galaxy 角色来执行任务和测试,而不是在剧本中使用一组 ansible 模块,这些模块显然应该实现相同的目标(也许一些多余的额外内容可能不重要并且不会)不要打扰作为 AG 角色的一部分)?我认为是的,因为它更公共、更稳定。

答案1

是否使用 Galaxy 提供的角色是您需要根据您的特定环境(对于您正在考虑的每个角色)进行评估的决定。

Galaxy 上的好角色通常会处理比您的特定角色更多的情况(与您的剧本相比,看看这里的内容tasks),但这些功能是有代价的:您正在向系统添加外部依赖项,并依赖于一个满足您需求的社区。

您需要考虑评估 Galaxy 角色与开发剧本(或您自己的 Galaxy 角色)的成本;无论是现在,还是将来。没有硬性规定。

相关内容