В рамках задач, выполняемых после установки, необходимо установить, настроить и обновить подключаемый модуль Master. Подключаемый модуль Master позволяет главным серверам Salt обмениваться данными с SaltStack Config. Подключаемый модуль Master содержит различные параметры, которые можно настраивать для повышения производительности, что особенно важно для крупных или перегруженных сред.

Как правило, подключаемый модуль Master устанавливается на каждом главном сервере Salt в среде, которая взаимодействует с SaltStack Config. Например, если используется конфигурация с несколькими главными серверами Salt, то на каждом главном сервере Salt нужно установить подключаемый модуль Master.

Примечание: В рамках инициативы корпорации VMware по удалению сомнительных терминов термин «Salt master» (главный сервер Salt) будет заменен на более подходящий в системе SaltStack Config, в связанных продуктах и документации. Для обновления терминологии может потребоваться несколько этапов, прежде чем этот процесс будет полностью завершен.

Перед началом работы

Установка и настройка подключаемого модуля Master — одна из операций, которые необходимо выполнить в определенном порядке по завершении установки. Выполните один из сценариев установки, а затем ознакомьтесь с процедурой Установка лицензионного ключа, выполняемой после установки.

Установите библиотеку PyJWT на главном сервере Salt с помощью следующей команды:
pip3 install pyjwt==2.3.0

Когда нужно установить подключаемый модуль Master?

Подключаемый модуль Master необходимо установить на всех главных серверах Salt после новой установки SaltStack Config. Устанавливать подключаемый модуль Master на главных серверах Salt, которым не нужна связь с SaltStack Config, необязательно.

Если использовался сценарий Установка SaltStack Config для менее 1000 узлов, то устанавливать подключаемый модуль Master на узле, где установлены система SaltStack Config и ее связанная архитектура, не требуется. Установщик автоматически устанавливает подключаемый модуль Master на узле главного сервера Salt. При этом подключаемый модуль Master устанавливается только на том главном сервере Salt, где был запущен установщик. При наличии нескольких главных серверов этот подключаемый модуль потребуется установить на всех главных серверах.

При ручной установке SaltStack Config (не рекомендуется) перед установкой подключаемого модуля Master необходимо выполнить следующие действия.

  • Установка и настройка базы данных PostgreSQL
  • Установка и настройка базы данных Redis
  • Включение SSL (необязательно)

Установка подключаемого модуля Master с помощью рабочей области «Подключаемые модули Master»

Примечание: Этот компонент поддерживается для SaltStack Config версии 8.11.2 и более поздней.
Примечание: Главный сервер Salt должен быть запущен от имени пользователя root.

Загрузить и установить последнюю версию подключаемого модуля Master можно через пользовательский интерфейс SaltStack Config. Для этого перейдите в раздел Администрирование > Подключаемые модули Master. На вкладке «Подключаемые модули Master» можно загрузить подключаемый модуль или клиент.

После загрузки необходимо настроить подключаемый модуль Master.

Установка подключаемого модуля Master через интерфейс командной строки

Чтобы установить подключаемый модуль Master на главном сервере Salt, выполните следующие действия.

  1. Войдите в учетную запись на главном сервере Salt.
  2. При необходимости загрузите файл wheel для подключаемого модуля Master с веб-сайта Customer Connect.

    Подключаемый модуль Master содержится в файле Automated Installer с расширением .tar.gz. После загрузки и извлечения файла .tar.gz подключаемый модуль Master будет находиться в каталоге sse-installer/salt/sse/eapi_plugin/files.

  3. Установите подключаемый модуль Master путем ручной установки обновленного файла wheel Python. Используйте следующие примеры команд, заменив имя файла на точное имя файла wheel.

    RHEL/CentOS

    sudo pip3 install SSEAPE-file-name.whl --prefix /usr

    Ubuntu

    sudo pip3 install SSEAPE-file-name.whl
    Примечание: Некоторым пользователям может потребоваться изменить синтаксис на pip3.6 или pip36 в соответствии с операционной системой.

Настройка подключаемого модуля Master

Чтобы настроить главный сервер Salt после установки подключаемого модуля Master, выполните следующие действия.

  1. Войдите в учетную запись на главном сервере Salt и убедитесь в наличии каталога /etc/salt/master.d. Если его еще нет, создайте его.
  2. Сгенерируйте настройки конфигурации главного сервера.
    Осторожно!: Если настройки требуется сохранить при модернизации установки, перед выполнением этого шага создайте резервную копию существующего файла конфигурации подключаемого модуля Master. Затем скопируйте соответствующие настройки из существующей конфигурации в новый сгенерированный файл.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf

    Если при выполнении этой команды произошла ошибка, это может быть связано с методом, который использовался при первоначальной установке Salt. Если система Salt была установлена с помощью установщика SaltStack Config, то эта установка, скорее всего, содержит автономный пакет, называемый Salt Crystal, для обновления которого нужно выполнить особую процедуру. Дополнительные сведения см. в разделе Устранение неполадок.

  3. Отредактируйте сгенерированный файл raas.conf и обновите значения следующим образом, чтобы проверить сертификат, используемый API-интерфейсом (RaaS), и указать его IP-адрес.
    Значение Описание

    sseapi_ssl_validate_cert

    Проверяет сертификат, используемый API-интерфейсом (RaaS). Значение по умолчанию — True.

    При использовании сертификатов, выданных вашим собственным ЦС, установите значение True и настройте параметры sseapi_ssl_ca, sseapi_ssl_cert и sseapi_ssl_cert:.

    В противном случае установите значение False, чтобы не проверять сертификат.

    sseapi_ssl_validate_cert:False

    sseapi_server

    IP-адрес HTTP-узла RaaS, например http://example.com (или https://example.com, если включен протокол SSL).

    sseapi_command_age_limit

    Определяет период времени (в секундах), по окончании которого потенциально устаревшие задания будут пропускаться. Например, чтобы пропустить задания, устаревшие на один день, установите следующее значение.

    sseapi_command_age_limit:86400

    Пропущенные задания остаются в базе данных и отображаются с состоянием Completed в пользовательском интерфейсе SaltStack Config.

    В некоторых средах может требоваться, чтобы главный сервер Salt отключался от Интернета на длительное время, а затем выполнял все задания, поставленные в очередь, при возобновлении подключения к Интернету. Если это применимо к вашей среде, установите для этого параметра значение 0.

    sseapi_windows_minion_deploy_delay Укажите задержку для активации всех необходимых служб Windows. Значение по умолчанию — 180 секунд.
    sseapi_linux_minion_deploy_delay Укажите задержку для активации всех необходимых служб Linux. Значение по умолчанию — 90 секунд.
    sseapi_local_cache Укажите период времени, в течение которого определенные данные локально кешируются на каждом главном сервере Salt. Значение по умолчанию — 300 секунд (5 минут).
  4. НЕОБЯЗАТЕЛЬНО. Этот шаг необходимо выполнять только для установок, осуществленных вручную. Чтобы проверить подключение к SSL перед установкой связи с подключаемым модулем Master, отредактируйте сгенерированный файл raas.conf для обновления следующих значений. Если эти значения не обновить, то в подключаемом модуле Master будет использоваться сертификат, созданный по умолчанию.
    Значение Описание
    sseapi_ssl_ca Путь к файлу ЦС.
    sseapi_ssl_cert Путь к сертификату. Значение, заданное по умолчанию, — /etc/pki/raas/certs/localhost.crt.
    sseapi_ssl_key Путь к закрытому ключу сертификата. Значение, заданное по умолчанию, — /etc/pki/raas/certs/localhost.key.
    id Закомментируйте эту строку, добавив # в ее начало. Выполнять это действие необязательно.
  5. НЕОБЯЗАТЕЛЬНО. Обновите параметры, связанные с производительностью. В крупных и высоконагруженных средах эффективность обмена данными между главным сервером Salt и SaltStack Config можно улучшить с помощью следующих параметров.
    • Включите очередь событий (доступно в системе Salt версии 2019.2.2 и более поздних). На главном сервере Salt события можно записывать в очередь и передавать модулям возврата по несколько событий в пакете в рамках одной транзакции. По умолчанию механизм формирования очереди отключен. Чтобы включить очередь событий, в файле конфигурации подключаемого модуля Master системы Salt выполните следующие настройки.
      event_return_queue:2500
      event_return_queue_max_seconds:5

      Рекомендуемый максимальный размер очереди — 2500 событий (как показано ниже). При заполнении очереди события отправляются в модуль возврата, а очередь сбрасывается. Для небольших или менее загруженных сред рекомендуется более низкое значение.

      В некоторых случаях шина событий Salt может быть не настолько загружена, чтобы очередь регулярно заполнялась полностью. Параметр event_return_queue_max_seconds вызывает сброс очереди в тот момент, когда время пребывания в очереди самого раннего события превышает заданное значение, независимо от степени заполнения очереди.

    • Включите и настройте модули eventqueue и rpcqueue.

      Эти модули передают некоторые взаимодействия с SaltStack Config специализированным процессам, освобождая программные механизмы, напрямую влияющие на производительность. Пока модули ожидают взаимодействия с SaltStack Config, полезные данные находятся в локальной файловой системе главного сервера Salt, поэтому при его перезапуске данные будут сохраняться.

      Чтобы включить эти модули, раскомментируйте следующие параметры в файле конфигурации подключаемого модуля Master системы Salt (raas.conf).

      engines:
        - sseapi: {}
        - eventqueue: {}
        - rpcqueue: {}
        - jobcompletion: {}
        - keyauth: {}

      Чтобы настроить модуль eventqueue, раскомментируйте и обновите следующие параметры.

      sseapi_event_queue:
        name: sseapi-events
        strategy: always
        push_interval: 5
        batch_limit: 2000
        age_limit: 86400
        size_limit: 35000000
        vacuum_interval: 86400
        vacuum_limit: 350000
        forward: []

      При корректировке параметров очереди следует учитывать их совместное действие. Например, если принять среднюю скорость шины событий Salt равной 400 событиям в секунду, то при использовании приведенных выше настроек события в очереди главного сервера Salt будут накапливаться в течение примерно 24 часов, прежде чем самые ранние из них будут удалены из-за ограничений по размеру очереди или сроку хранения.

      Чтобы настроить модуль rpcqueue, раскомментируйте и обновите следующие параметры.

      sseapi_rpc_queue:
          name: sseapi-rpc
          strategy: always
          push_interval: 5
          batch_limit: 500
          age_limit: 3600
          size_limit: 360000
          vacuum_interval: 86400
          vacuum_limit: 100000
    • Включите кэширование нагрузки.
      sseapi_local_cache:
          load:3600
      Примечание: Если включен модуль rpcqueue, необходимо также включить кэширование нагрузки, чтобы главный сервер Salt правильно обрабатывал задания.
    • Ограничьте размер полезных данных в параметрах grain служебных серверов.
      sseapi_max_minion_grains_payload:2000
    • Включите пропуск заданий, которые созданы раньше определенного времени (в секундах). Например, чтобы пропустить задания старше одного дня, используйте значение 86400. Если установлено значение 0, эта функция отключена.
      sseapi_command_age_limit:0
      Примечание:

      Это помогает предотвратить непредвиденный запуск старых команд, хранящихся в базе данных, во время обновления.

    Используя очередь событий в Salt вместе с механизмами формирования очереди, кэшированием нагрузки, ограничением размера полезных данных в параметрах grain служебных серверов и предельным сроком хранения команд в подключаемом модуле Master системы Salt, можно увеличить пропускную способность и уменьшить задержку при взаимодействии главного сервера Salt и SaltStack Config, осуществляемом программными механизмами, которые напрямую влияют на производительность.

  6. Перезапустите службу Master главного сервера.
    sudo systemctl restart salt-master
  7. НЕОБЯЗАТЕЛЬНО. При желании можно выполнить тестовое задание и убедиться, что подключаемый модуль Master обеспечивает связь между главным сервером и узлом RaaS.
    salt -v '*' test.ping

Даже если никакие действия не отображаются (как будто никакие служебные серверы не подключены), скорее всего, это указывает на правильную конфигурацию.

Справочник по параметрам конфигурации

Эти параметры в файле конфигурации позволяют всем главным серверам Salt подключаться к API-интерфейсу (RaaS). Их можно найти в файле конфигурации /etc/salt/master.d/raas.conf.

Важно!:

Параметры главного сервера Salt в файле raas.conf обладают преимуществом перед существующими настройками в /etc/salt/master. Если настройки параметров fileserver_backend или ext_pillar в /etc/salt/master изменены, их необходимо объединить вручную, чтобы они содержались только в одном файле. Чтобы изменить приоритет, можно переупорядочить конечные серверы.

Общие параметры конфигурации описываются в следующей таблице.

Параметр Описание
id Идентификатор главного сервера Salt; если не задан, генерируется автоматически
sseapi_server URL-адрес сервера SSEAPI, например https://sse.example.com:443
engines Модули Salt, которые рекомендуется включить: sseapi, eventqueue, rpcqueue, jobcompletion и keyauth.
master_job_cache sseapi для использования кэша заданий главного сервера SaltStack Config
event_return Модуль возврата Salt, рекомендуется sseapi для использования модуля возврата событий SaltStack Config
ext_pillar Внешние источники хранилищ pillar, рекомендуется sseapi
fileserver_backend Конечные системы файловых серверов, рекомендуются sseapi и roots
sseapi_update_interval Интервал между получением обновлений от файлового сервера (в секундах, по умолчанию — 60)
sseapi_poll_interval Интервал между опросами SaltStack Config для получения новых данных (в секундах, по умолчанию — 30)
sseapi_jce_poll_interval Задержка между итерациями в модуле jobcompletion, чтобы на главный сервер Salt отправлялось не более 5760 команд find_job в день (в секундах, по умолчанию 15)
sseapi_timeout Время ожидания для вызовов API-интерфейса (RaaS) (в секундах, по умолчанию — 200)
sseapi_pubkey_path Путь к файлу открытого ключа для проверки подлинности главного сервера Salt в SaltStack Config
sseapi_key_rotation Интервал замены ключа для проверки подлинности SaltStack Config главного сервера Salt (в секундах, по умолчанию — 86400)
sseapi_cache_pillar Следует ли кэшировать данные хранилищ pillar в SaltStack Config (True или False, по умолчанию — False)
sseapi_cluster_id (Необязательно.) Имя кластера главных серверов Salt для объединения в кластеры в SaltStack Config
sseapi_failover_master Используется ли этот главный сервер Salt для аварийного переключения (True или False, по умолчанию — False)
sseapi_command_age_limit Пропуск команд API-интерфейса (RaaS) старше определенного времени (в секундах, 0 — параметр выключен, по умолчанию — 0)

В следующей таблице описываются настройки SSL.

Параметр Описание
sseapi_ssl_key Путь к закрытому ключу сертификата
sseapi_ssl_cert Путь к сертификату
sseapi_ssl_validate_cert Следует ли проверять SSL-сертификат SaltStack Config (True или False, по умолчанию — True)

В следующей таблице описываются параметры механизма очереди событий, которые отображаются под заголовком sseapi_event_queue.

Параметр Описание
name Имя очереди событий (имя по умолчанию — sseapi-events, его менять не требуется)
strategy Когда требуется создавать очереди событий (always, on_failure или never, по умолчанию — never)
push_interval Интервал между отправкой событий в SaltStack Config (в секундах, по умолчанию — 5)
batch_limit Максимальное количество событий для отправки в SaltStack Config за интервал (значение по умолчанию — 2000)
age_limit Максимальный срок хранения события в очереди; старые события (в секундах, по умолчанию — 86 400)
size_limit Максимальный размер очереди; старые события сбрасываются (в секундах, по умолчанию — 35 000 000)
vacuum_interval Интервал между очистками базы данных очереди (в секундах, по умолчанию — 86 400)
vacuum_limit Максимальный размер очереди для очистки базы данных очереди (в событиях, по умолчанию — 350 000)
forward Дополнительные модули возврата для отправки событий при сбросе очереди (значение по умолчанию — нет)

В элементе конфигурации forward может быть задан список, состоящий из одного имени или нескольких модулей возврата Salt. При каждом сбросе очереди события будут отправляться в SaltStack Config, а также в каждый модуль возврата из этого списка. Это позволяет добавлять в любой стандартный модуль возврата функции очереди и постоянного хранения. Ниже приводится пример конфигурации, в которой события записываются в локальный файл при каждой отправке в SaltStack Config.

sseapi_event_queue:
  # ...other queue settings...
  forward:
    - rawfile_json

# rawfile_json returner configuration
rawfile_json.filename: /var/log/salt/events.json

В следующей таблице описываются настройки механизма очереди RPC, которые отображаются под заголовком sseapi_rpc_queue.

Параметр Описание
name Имя очереди событий (имя по умолчанию — sseapi-rpc, его менять не требуется)
strategy Когда требуется создавать очереди событий (always, on_failure или never, по умолчанию — never)
push_interval Интервал между вызовами в SaltStack Config (в секундах, по умолчанию — 5)
batch_limit Максимальное количество вызовов, отправляемых в SaltStack Config, за интервал (по умолчанию — 500)
age_limit Максимальный срок хранения вызова в очереди; старые записи сбрасываются (в секундах, по умолчанию — 3600)
size_limit Максимальный размер очереди; старые записи сбрасываются (в событиях, по умолчанию — 360 000)
vacuum_interval Интервал между очистками базы данных очереди (в секундах, по умолчанию — 86 400)
vacuum_limit Максимальный размер очереди для очистки базы данных очереди (в записях, по умолчанию — 100 000)

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

Параметр Описание
beacons_dirs Путь (пути) к внешним модулям маяков
engines_dirs Путь (пути) к внешним программным модулям
fileserver_dirs Путь (пути) к внешним модулям файловых серверов
pillar_dirs Путь (пути) к внешним модулям pillar
returner_dirs Путь (пути) к внешним модулям возврата
roster_dirs Путь (пути) к внешним модулям состава
runner_dirs Путь (пути) к внешним модулям выполнения
module_dirs Путь (пути) к внешним модулям Salt
proxy_dirs Путь (пути) к внешним модулям прокси-серверов
metaproxy_dirs Путь (пути) к внешним модулям metaproxy
states_dirs Путь (пути) к внешним модулям состояний

Следующие шаги

По завершении установки и настройки подключаемого модуля Master необходимо выполнить дополнительные действия, требуемые после установки. Далее требуется настроить узел RaaS. Сведения об этой задаче, выполняемой после установки, см. в разделе Проверка файла конфигурации RaaS.