Назад | Перейти на главную страницу

Как организовать файл hosts Ansible по ролям и местоположению?

Мой проект заключается в использовании Ansible для управления тремя кластерами серверов, каждый из которых находится в разных городах и штатах, Бостоне, Чикаго и Лос-Анджелесе. Итак, в каждом центре обработки данных у меня есть два сервера httpd, три сервера tomcat и два сервера баз данных.

В моем файле / etc / ansible / hosts я уже настроил группы на основе роли машины http, tomcat и db.

У меня вопрос: могу ли я создать второй набор (географических) групп в / etc / ansible / hosts, где те же самые машины указаны под именем центра обработки данных, или это следует делать в файлах group_vars? Или мне следует создать группы parent: child в / etc / ansible / hosts?

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

Если у вас есть группы для «роли» (http, tomcat и db), а также для местоположения (Бостон, Чикаго и Лос-Анджелес), вы можете настроить таргетинг на любую комбинацию этих машин в своих сценариях, например hosts: boston&db ограничит игру всеми хостами, содержащимися в обеих группах boston и db.