我使用ansible-galaxy安装了几个角色,并在我的.ansible.cfg中包含以下行:
roles_path = /Users/idyllic/ansible/roles
现在,对于一个特定项目,我已经定义了一个requirements.yml,其中列出了所有需要安装的ansible角色(它们都存储在/ Users / idyllic / ansible / roles中)。
ansible-galaxy install -r requirement.yml
现在,甚至项目都有一个角色目录,因此在项目角色目录中下载角色是明智的,而不是在目录define(.ansible_cfg)上定义它的那个
在ansible(版本2.1.1.0)中存储角色的最佳做法是什么?
答案 0 :(得分:0)
我在项目根文件夹中有这一行
roles_path = ./roles:..:/etc/ansible/roles
然后将requirements.yml安装放在项目中。
这确保了如果角色是两个项目的一部分,则不会意外更新
项目树结构:
.
├── Makefile
├── Vagrantfile
├── ansible.cfg
├── defaults
│ └── main.yml
├── elasticsearch.yml
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── requirements.yml
├── tasks
│ ├── main.yml
├── templates
├── roles # this is where the requirements.yml go
└── vars
└── main.yml
答案 1 :(得分:0)
我正在使用https://github.com/enginyoyen/ansible-best-practises中的项目结构。
它包含一个bash脚本,该脚本在专用目录中下载和更新Ansible外部角色,这些角色在需求文件中声明:
我发现创建许多不同且分离的项目结构非常容易且非常有用。