Настройка работы с Consul¶
Данный функционал предназначен для изменения конфигурационных файлов и применения измененных значений.
Требования к системе¶
Для настройки системы Вам необходимо:
- Установить и настроить Consul - описано на официальном сайте Consul;
- Установить и настроить Agent - описано в разделе документации «Установка и настройка»;
- Убедиться, что включен режим динамического конфигурирования компонентов на узлах (DCC) (по умолчанию включен) - включение DCC описано в разделах документации:
- через GUI в Dashboard;
- через CLI посредством REST API запроса.
При настройке Agent необходимо указать тип конфигурации consul
. Если настроен Consul и Agent, то при включенном DCC Agent будет опрашивать каждые 60 секунд Consul на предмет измененных данных для узла, на котором он запущен. Для принудительного включения динамического конфигурирования компонентов узла и отключения опроса CloudManager установите параметр force_dcc = true
в секции [consul]
.
Настройка¶
Для настройки Agent необходимо внести изменения в конфигурационный файл agent.conf
, как указано в документации по настройке. У Agent должны быть права доступа для настройки нужных конфигурационных файлов. Также при необходимости для применения измененных параметров (рестарт служб systemd) необходимо сконфигурировать файл /etc/aos/agent_consul_services.json
. Пример этого файла:
{
"nova": {
"config_file": "/etc/nova/nova.conf",
"restart_services": ["openstack-nova-*"]
},
"cinder": {
"config_file": "/etc/cinder/cinder.conf",
"restart_services": ["openstack-cinder-*"]
}
}
Где:
nova
,cinder
— названия директорий в Consul для отслеживания параметров;config_file
— файл, который нужно исправить;openstack-cinder-*
,openstack-nova-*
- маска для имен служб, которые необходимо перезапустить.
Следующим шагом необходимо определить структуру конфигурационных файлов в разделе key/value
Consul. Необходимые требования к структуре:
HostName
ServiceName
SectionName
ParameterName
Value
Где:
HostName
— имя узла, где должны применяться параметры (не используются IP-адреса);ServiceName
— имя службы, которое указано в/etc/aos/agent_consul_services.json
. В нашем случае этоnova
иcinder
;SectionName
— имя секции для внесения изменения;ParameterName
— имя параметра для внесения изменения;Value
— значение параметра.
Дополнительно¶
- Если необходимо применить значения на всех узлах, то необходимо создать директорию верхнего уровня
default
вместо имени узла. - Если указано значение одного и того же параметра в разделе
default
и в разделе имени узла, то будет применяться значение из раздела имени узла. - Если параметра или секции нет в конфигурационном файле, то Agent добавит их автоматически.