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

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

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

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

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

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

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

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

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

  • Установка и настройка базы данных PostgreSQL
  • Установка и настройка базы данных Redis
  • Включение SSL (необязательно)
Важно!: Какую бы версию вы ни использовали, конфигурацию подключаемого модуля Master рекомендуется обновить путем создания файла конфигурации по умолчанию и применения всех параметров из существующей конфигурации, которые необходимо сохранить. Например:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf 
...

Если система Salt установлена с помощью Onedir, путь к исполняемому файлу следующий: /opt/saltstack/salt/extras-3.10/bin/sseapi-config.

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

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

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

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

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

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

Начиная с выпуска 8.13.0, подключаемый модуль Master содержит модуль tgtmatch, который передает процесс сопоставления целевой группы с сервера RaaS на главные серверы Salt. Этот модуль tgtmatch рекомендуется включить и настроить, чтобы процесс сопоставления целевой группы мог обеспечивать более информативный отклик, особенно в средах со следующими особенностями:

  • Большое количество целевых групп (100 или больше)
  • Большое количество служебных серверов (3000 или больше)
  • Частое изменение параметров grains на служебных серверах (ежедневно или чаще)
  • Частое создание и удаление служебных серверов (ежедневно или чаще)
Чтобы настроить RaaS на возможность передачи данных о сопоставлении целевых объектов с главных серверов Salt, убедитесь в наличии следующего параметра в файле конфигурации RaaS (/etc/raas/raas/raas).
target_groups_from_master_only: true
  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.
    Примечание: Существующий подключаемый модуль необходимо удалить, чтобы предотвратить использование нескольких экземпляров sseapi-config.
    pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl
    mv /etc/salt/master.d/raas.conf /tmp
    salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl
    cp /tmp/raas.conf /etc/salt/master.d/raas.conf
    systemctl restart salt-master

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

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

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

    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 в пользовательском интерфейсе Automation Config.

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

    sseapi_windows_minion_deploy_delay Укажите задержку для активации всех необходимых служб Windows. Значение по умолчанию — 180 секунд.
    sseapi_linux_minion_deploy_delay Укажите задержку для активации всех необходимых служб Linux. Значение по умолчанию — 90 секунд.
    sseapi_local_cache
         load: 3600
         tgt: 86400
         pillar: 3600
         exprmatch: 86400
         tgtmatch: 86400

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

    • load — полезные данные salt save_load()

    • tgt — целевые группы SSE

    • pillar — данные хранилища pillar SSE (зашифрованные)

    • exprmatch — данные о сопоставлении выражений для целевых объектов SSE

    • tgtmatch — данные о сопоставлении целевых групп SSE

  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 и Automation Config можно улучшить с помощью следующих параметров.
    • Настройте модули подключаемого модуля Master.

      Модули eventqueue и rpcqueue в подключаемом модуле Master передают некоторые взаимодействия с Automation Config специализированным процессам, освобождая программные механизмы, напрямую влияющие на производительность. Пока модули ожидают взаимодействия с Automation Config, полезные данные находятся в локальной файловой системе главного сервера Salt, поэтому при его перезапуске данные будут сохраняться. Модуль tgtmatch перемещает процесс расчета совпадений целевой группы служебных серверов с сервера RaaS на главные серверы Salt.

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

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

      Чтобы настроить модуль 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 

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

      Чтобы настроить модуль rpcqueue, в файле raas.conf должны быть заданы следующие параметры:

      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 
      Чтобы настроить модуль tgtmatch, убедитесь в наличии этих параметров в файле конфигурации подключаемого модуля Master (/etc/salt/master.d/raas.conf)
      engines: 
          - sseapi: {} 
          - eventqueue: {} 
          - rpcqueue: {} 
          - jobcompletion: {} 
          - keyauth: {} 
          - tgtmatch: {} 
      
      sseapi_local_cache:     
          load: 3600 
          tgt: 86400 
          pillar: 3600 
          exprmatch: 86400 
          tgtmatch: 86400 
      
      sseapi_tgt_match: 
          poll_interval: 60     
          workers: 0 
          nice: 19
      Примечание: Чтобы использовать сопоставление целевых объектов на главных серверах Salt, в конфигурации RaaS также должен быть задан следующий параметр конфигурации: target_groups_from_master_only: true.
    • Ограничьте размер полезных данных в параметрах grain служебных серверов.
      sseapi_max_minion_grains_payload: 2000
    • Включите пропуск заданий, которые созданы раньше определенного времени (в секундах). Например, чтобы пропустить задания старше одного дня, используйте значение 86400. Если установлено значение 0, эта функция отключена.
      sseapi_command_age_limit:0
      Примечание:

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

    Используя очередь событий в Salt вместе с модулями формирования очереди, сопоставлением целевых объектов на главных серверах Salt, ограничением размера полезных данных в параметрах grain служебных серверов и предельным сроком хранения команд в подключаемом модуле Master системы Salt, можно увеличить пропускную способность и уменьшить задержку при взаимодействии главного сервера Salt и Automation 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 для использования кэша заданий главного сервера Automation Config
event_return Модуль возврата Salt, рекомендуется sseapi для использования модуля возврата событий Automation Config
ext_pillar Внешние источники хранилищ pillar, рекомендуется sseapi
fileserver_backend Конечные системы файловых серверов, рекомендуются sseapi и roots
sseapi_update_interval Интервал между получением обновлений от файлового сервера (в секундах, по умолчанию — 60)
sseapi_poll_interval Интервал между опросами Automation Config для получения новых данных (в секундах, по умолчанию — 30)
sseapi_jce_poll_interval Задержка между итерациями в модуле jobcompletion, чтобы на главный сервер Salt отправлялось не более 5760 команд find_job в день (в секундах, по умолчанию 15)
sseapi_timeout Время ожидания для вызовов API-интерфейса (RaaS) (в секундах, по умолчанию — 200)
sseapi_pubkey_path Путь к файлу открытого ключа для проверки подлинности главного сервера Salt в Automation Config
sseapi_key_rotation Интервал замены ключа для проверки подлинности Automation Config главного сервера Salt (в секундах, по умолчанию — 86400)
sseapi_cache_pillar Следует ли кэшировать данные хранилищ pillar в Automation Config (True или False, по умолчанию — False)
sseapi_cluster_id (Необязательно.) Имя кластера главных серверов Salt для объединения в кластеры в Automation 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-сертификат Automation Config (True или False, по умолчанию — True)

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

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

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

Параметр Описание
name Имя очереди событий (имя по умолчанию — sseapi-rpc, его менять не требуется)
strategy Когда требуется создавать очереди событий (always, on_failure или never, по умолчанию — never)
push_interval Интервал между вызовами в Automation Config (в секундах, по умолчанию — 5)
batch_limit Максимальное количество вызовов, отправляемых в Automation Config, за интервал (по умолчанию — 500)
age_limit Максимальный срок хранения вызова в очереди; старые записи сбрасываются (в секундах, по умолчанию — 3600)
size_limit Максимальный размер очереди; старые записи сбрасываются (в событиях, по умолчанию — 360 000)
vacuum_interval Интервал между очистками базы данных очереди (в секундах, по умолчанию — 86 400)
vacuum_limit Максимальный размер очереди для очистки базы данных очереди (в записях, по умолчанию — 100 000)
В следующей таблице описываются параметры модуля сопоставления целевых объектов, которые группируются под заголовком sseapi_tgt_match.
Параметр Описание
poll_interval Частота (в секундах), с которой модуль должен запрашивать обновленные сведения о целевой группе из RaaS (по умолчанию 60)
workers Количество рабочих процессов, которые необходимо создать, чтобы выполнять расчет сопоставления целевых групп. Значение по умолчанию (0) позволяет создать один процесс для каждого ядра ЦП (макс. 8).
nice Приоритет рабочих процессов сопоставления целевых групп. Если используется значение по умолчанию (19), рабочим процессам назначается наименьший приоритет планирования для предотвращения появления помех для других процессов, выполняемых на главном сервере Salt.

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

Параметр Описание
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.