Настройка работы с Consul

Данный функционал предназначен для изменения конфигурационных файлов и применения измененных значений.

Требования к системе

Для настройки системы Вам необходимо:

При настройке 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 добавит их автоматически.