我有一本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-Galaxy角色与Ansible剧本中的任务和测试结合使用,而不是在剧本中显然应该实现相同目标的一组ansible模块,是否是最佳实践(也许有些多余的多余部分可能并不重要, t中断是AG角色的一部分)?我认为是的,因为它更通用且更稳定。
是否需要使用Galaxy提供的角色是您需要在特定上下文中评估的决定(针对您正在考虑的每个角色)。
在Galaxy上,好的角色通常会比您的特定角色处理更多的情况(请参阅tasks
此处的内容,与您的剧本相比),但是这些功能要付出一定的代价:您在系统上添加了外部依赖关系,并依赖于一个社区来满足您的要求。
与开发剧本(或您自己的Galaxy角色)相比,您需要查看评估Galaxy角色的成本;无论现在还是将来。没有硬性规定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句