什么是存储ansible角色的最佳位置

时间:2016-11-23 06:33:09

标签: ansible

我使用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)中存储角色的最佳做法是什么?

2 个答案:

答案 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外部角色,这些角色在需求文件中声明:

我发现创建许多不同且分离的项目结构非常容易且非常有用。