我有一个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
我的考虑
相反,这些5行结构我正在考虑在剧本中使用这个ansible-galaxy命令:
ansible-galaxy install geerlingguy.composer
geerlingguy.composer
是拥有超过百万用户的最具社区支持的AG角色(所以我假设如果出现问题并且Jeff目前不在身边 – 比如说,在夏威夷度过假期,那么会有很多社区成员要修复问题并确保稳定.
使用它也会缩短我已经很长的剧本.
我的问题
一般来说,最好的做法是将Ansible-Galaxy角色与Ansible剧本中的任务和测试一起使用,而不是剧本中应该显示达到相同目标的一组ansible-modules(可能是一些可能无关紧要的多余额外内容) t中断作为AG角色的一部分)?我会认为是的,因为它更公共,更稳定.
解决方法:
是否使用Galaxy提供的角色是您需要在特定环境中评估的决策(对于您正在考虑的每个角色).
Galaxy上的好角色通常会处理比你的特定角色更多的情况(看看这里的任务内容,与你的剧本相比),但这些功能需要付出代价:你正在为系统添加一个外部依赖,并依赖在社区处理您的要求.
与开发剧本(或您自己的Galaxy角色)相比,您需要考虑评估Galaxy角色的成本;无论是现在还是将来.没有严格的规则.