Skip to main content

Примеры определения ролей

Для определения роли сервера необходимо добавить его доменное имя или IP-адрес в соответствующую секцию в шаблоне файла inventory. После назначения роли серверу при установке будут выполнены команды Ansible.

info

Домен host.example.com (указан для примера) должен резолвится в IP-адрес на сервере с ролью operator и на всех серверах кластера.

Пример. Для назначения группы ролей pythagoras серверу с доменным именем host.example.com необходимо указать следующие значения:

pythagoras:
hosts:
host1.example.com:

При совмещении всех ролей на одном сервере в шаблоне файла inventory дублируется секция hosts. При изменении конфигурации установки возможно добавление или удаление серверов в группах.

В режиме кластерной установки в файле inventory указывается несколько IP-адресов или доменных имен серверов в соответствующей группе.

Пример (фрагмент шаблона ~/install_pgs/contrib/pgs/standalone/hosts.yml). Все роли и группы ролей устанавливаются на один сервер по адресу host.example.com:

all:
children:
pgs:
children:
pythagoras:
hosts:
host.example.com:
keycloak:
hosts:
host.example.com:
arangodb:
hosts:
host.example.com:
volume_device_arangodb: False
volume_device_arangodb_path: "/dev/disk/by-uuid/<UUID>"

Текущей версией ПО поддерживается кластеризация для сервисов, перечисленных в таблице. В таблице указано минимально необходимое количество серверов для работы кластера. В зависимости от инфраструктуры и типа установки количество серверов может быть изменено.

Наименование сервисаГруппаКоличество
серверов
Aristoteles
Dionis
Epicure
Euclid
Heraclitus
Pheidippides
Restrictions
Sisyphusworker
Pythagoras2
Subscriptions
User_listener
Pythagoras1
KeycloakKeycloak2
ArangoDBArangoDB2(1)
ArangoDBArangodb_agent3(1)
ElasticsearchSearch3
SisyphussearchSearch3
RedisRedis3
RabbitMQRabbitMQ3
EtcdEtcd3
NginxNginx2
PostgresPostgres2
Docker RegistryInfrastructure1
Syslog-ngInfrastructure1
MonitoringInfrastructure1
StorageStorage3