среды, dev и prod, я их разнес в разные директории в /etc/ansible/environments. В каждом файле hosts довольно много групп. В prod есть два сервиса - elastic и nextcloud, в которые входят несколько групп. Выглядит это примерно так:
[test_cloud_data]
test_cloud_single_01 ansible_host=10.77.250.5
test_cloud_single_02 ansible_host=10.77.250.22
test_cloud_single_03 ansible_host=10.77.250.31
[test_cloud_nginx]
test_cloud_nginx_01 ansible_host=10.77.250.20
test_cloud_nginx_02 ansible_host=10.77.250.21
[test_cloud_proxysql]
test_cloud_proxysql_01 ansible_host=10.77.250.29
test_cloud_proxysql_02 ansible_host=10.77.250.30
[test_cloud_mariadb]
test_cloud_mariadb_01 ansible_host=10.77.250.25
test_cloud_mariadb_02 ansible_host=10.77.250.26
test_cloud_mariadb_03 ansible_host=10.77.250.27
Собственно вопросы:
1) Можно ли задать для таких групп внутри одного hosts общую группу, чтобы можно было обратиться сразу ко всем хостам сервиса? Например если мне нужно будет поставить на все машины *cloud* накатить fail2ban или.
2) Не выносят ли в таких случая сервисы в отдельные папки внутри environments? Чтобы для elk и nextcloud были свои директории /etc/ansible/environments/elk и /etc/ansible/environments/nextcloud, где в hosts уже отдельно будут только соответствующие сервисы?
1) для каких "таких"? не очень понятна суть вопроса 2) если у вас разделение на prod и dev, то вся структура внутри них должна быть аналогичной. Лучше придерживаться выбранной структуры и не смешивать сущности
Вот prod файл: [exch_haproxy_prod] prod_hap1 ansible_host=10.199.0.10 [elk_logstash] ls1 ansible_host=10.199.5.108 ls2 ansible_host=10.199.5.109 [elk_elastic] es02 ansible_host=10.199.5.104 es03 ansible_host=10.199.5.105 es04 ansible_host=10.199.5.106 [elk_haproxy] ha1 ansible_host=10.199.5.122 ha2 ansible_host=10.199.5.113 [elk_kibana] 10.199.5.107 [elk_nginx] 10.199.5.111 [teampass] 10.199.5.173 [prod_nextcloud] 10.199.5.14 [prometheus] 10.77.110.219 И ещё много записей ниже. Например мне нужно поставить на все серверы elk что-нибудь вроде node_exporter или fail2ban. Для этого нужно каждый раз запускать плейбук с указанием отдельной группы, например [elk_logstash] или [elk_elastic], либо сразу на весь инвентарный файл через all. Я бы хотел как-то объединить все серверы elk*, чтобы можно было запускать плейбук на них. Или это ерунда и все пользуются запуском на несколько групп через : ?
Обсуждают сегодня