我有一个在远程机器上建立灯环境的可操作的操作手册。
本手册的一部分内容涉及安装编写器:
- 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.composergeerlingguy.composer是最受社区支持的AG角色,拥有超过百万用户(所以我认为如果有问题,而杰夫目前不在--比如说,去夏威夷度假之类的话),就会有很多社区成员来解决这个问题并确保稳定。
使用这个也会缩短我已经很长的剧本。
为什么我们心爱的Geerling (和其他类似的角色)所扮演的Ansible-Galaxy角色都包含在GitHub中的目录defaults/、meta/和templates以及.travis.yml文件中?换句话说,为什么像我写的那种单一的剧本是不够的?
发布于 2018-12-18 09:00:23
meta包含用于银河注册表的元数据。.travis.yml包含特拉维斯CI的配置,这确保了项目的持续集成。其他目录体现了Ansible角色的典型结构:defaults包含默认设置,tasks包含剧本,templates包含生成文件的模板。
ansible-galaxy init将为您创建默认结构;详细信息请参见文献资料。目前,这是
README.md
.travis.yml
defaults/
main.yml
files/
handlers/
main.yml
meta/
main.yml
templates/
tests/
inventory
test.yml
vars/
main.yml但是,您不会在所有角色中看到所有这些,因为很少有角色需要这里列出的每个文件和目录。
如果您查看tasks中的文件,您将看到这个特定角色处理的情况比您自己的剧本多得多。这并不意味着你自己的剧本是“不够的”;它解释了为什么结构化的方法是有用的。
https://unix.stackexchange.com/questions/489638
复制相似问题