2016-04-18 7 views
0

Я работаю над загружаемой книгой для нашей инфраструктуры. У меня есть следующая повторяющаяся потребность, для которой я еще не нашел рекомендуемый шаблон:Лучшая практика использования несущественной роли из галактики в нескольких ролях?

У меня есть сервер, которому нужно запустить несколько vhosts (/ databases/rbenv environment/etc). Я могу установить nginx (postgres/rbenv/etc) с зависимостью от роли из галактики, т.е. е.

dependencies: 
- role: "geerlingguy.nginx" 
    nginx_ppa_use: true 
    nginx_ppa_version: development 
    .. 

Теперь я мог бы добавить массив конфигураций vhost для этой зависимости. Однако я хотел бы объединить эти определения не по технологии (nginx/rbenv ...), а по проекту.

Лучший путь, который я нашел до сих пор, заключается в повторении зависимости nginx в каждой роли проекта. Но это приводит к дублированию всех глобальных опций nginx и повторному выполнению установки nginx при подготовке нового сервера.

ответ

2

Это кажется прекрасным для меня.

Лучший путь, который я нашел до сих пор, заключается в повторении зависимости nginx в каждой роли проекта. Но это приводит к дублированию всех глобальных опций nginx и повторному выполнению установки nginx при подготовке нового сервера.

Нельзя, поскольку Ansible построен только для того, чтобы делать что-либо, если состояние системы не в нужном состоянии (т. Е. Установить nginx, только если nginx еще не установлен).

Однако, если повторные проверки занимают больше времени, чем вам нравится, вы можете разделить эту роль на две части: одну, которая выполняет основную общую настройку, и одну, которая повторяется для каждого vhost.