Для определения роли сервера необходимо добавить его доменное имя или IP-адрес в соответствующую секцию в шаблоне файла inventory. После назначения роли серверу при установке будут выполнены команды Ansible.
Пример. Для назначения группы ролей 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 Polemon Restrictions Sisyphusworker |
Pythagoras |
2 |
Subscriptions User_listener |
1 |
|
Keycloak |
Keycloak |
2 |
ArangoDB |
ArangoDB |
2(1) |
Arangodb_agent |
3(1) |
|
Elasticsearch |
Search |
3 |
Sisyphussearch |
||
Redis |
Redis |
3 |
RabbitMQ |
RabbitMQ |
3 |
Etcd |
Etcd |
3 |
Nginx |
Nginx |
2 |
Postgres |
Postgres |
2 |
Docker Registry |
Infrastructure |
1 |
Syslog-ng |
||
Monitoring |
||
Storage |
Storage |
3 |