Конфигурация сервера управления (master)

На машине, на которой установлен сервер управления (master), задайте настройки его конфигурации, следуя инструкциям в разделах ниже.

По умолчанию сервер управления (master) настраивается через главный файл конфигурации — /etc/salt/master.

Также поддерживается создание файлов конфигураций в каталоге /etc/salt/master.d/, что позволяет группировать логически параметры конфигурации.

Подробную информацию о настройке главного файла конфигурации сервера управления (master) см. в официальной документации.

Включение модуля salt-api

Чтобы включить модуль salt-api для модуля координации (SaltStack), выполните шаги:

  1. (Опционально) установите SSL-сертификаты.

    Подробную информацию об установке SSL-сертификатов см. в официальной документации.
  2. Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/salt-api.conf.

    Пример:

    rest_cherrypy:
      port: 8080
      debug: True
      disable_ssl: True

    Где:

    • rest_cherrypy — параметры управления конфигурацией встроенного веб-сервера Cherrypy, который использует salt-api:

      • port — укажите порт, который будет запущен salt-api (например, 8080);

      • debug — (опционально) включите (True) или отключите (False) режим отладки (debug mode) для salt-api;

      • disable_ssl — (опционально) если в первом шаге вы не установили SSL-сертификаты, задайте значение True.

Настройка подключения к S3-совместимому хранилищу

Чтобы использовать S3-совместимое хранилище в качестве пространства для хранения общих файлов конфигураций и файлов состояний, выполните шаги:

  1. Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/fileserver_backend.conf и в параметре fileserver_backend укажите имя хранилища, которое вы будете использовать в качестве бэкенда для файлов.

    Пример:

    fileserver_backend:
      - s3fs
  1. Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/s3.conf и задайте в нем настройки подключения к S3-совместимому хранилищу.

    Пример:

    s3.service_url: <s3_hostname>:<s3_port>
    s3.keyid: <ACCESS_KEY>
    s3.key: <SECRET_KEY>
    s3.buckets:
      - salt-bucket
    s3.path_style: True
    s3.location: <REGION>

    Где:

    • s3.service_url — URL-адрес и порт для обращения к S3-совместимому хранилищу;

    • s3.keyid — ключ доступа, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;

    • s3.key — секретный ключ, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;

    • s3.buckets — имя бакета (например, salt-bucket) для хранения файлов состояния и формул;

    • s3.path_style — стиль представления пути к объектам в S3-совместимом хранилище;

    • s3.location — регион, в котором расположено S3-совместимое хранилище.

      Подробное описание всех параметров приведено в официальной документации.
  2. Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/ext_pillar.conf и задайте в нем настройки подключения к S3-совместимому хранилищу для хранения в отдельном бакете данных Pillar.

    Пример:

    ext_pillar:
      - s3:
          service_url: <s3_hostname>:<s3_port>
          keyid: <ACCESS_KEY>
          key: <SECRET_KEY>
          bucket: pillar-bucket
          multiple_env: False
          environment: base
          prefix: ''
          verify_ssl: False
          s3_cache_expire: 30
          s3_sync_on_update: True
          path_style: True
          https_enable: False

    Где:

    • service_url — URL-адрес и порт для обращения к S3-совместимому хранилищу;

    • keyid — ключ доступа, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;

    • key — секретный ключ, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;

    • bucket — имя бакета (например, pillar-bucket), которое будет использоваться для хранения данных Pillar;

    • multiple_env — параметр, который определяет, поддерживается ли использование нескольких окружений (environments) в хранилище Pillar;

    • environment — параметр, который указывает на основное окружение (base environment) для хранилища Pillar;

    • prefix — префикс для путей к данным в S3-хранилище; пустая строка означает отсутствие префикса;

    • verify_ssl — параметр, который указывает, следует ли проверять SSL-сертификаты при обращении к S3-хранилищу;

    • s3_cache_expire — время жизни кэша (в секундах) для данных, полученных из S3-хранилища;

    • s3_sync_on_update — параметр, который определяет, следует ли выполнять синхронизацию данных при обновлении данных Pillar;

    • path_style — стиль представления пути к объектам в S3-хранилище;

    • https_enable — параметр, который указывает, следует ли использовать HTTPS для обращения к S3-хранилищу.

      Подробное описание всех полей приведено в официальной документации.

Загрузка пользовательских формул в S3-совместимое хранилище

Готовые формулы импортируются в S3-совместимое хранилище автоматически при установке продукта.

Чтобы загрузить пользовательские формулы и формулы-шаблоны используйте метод API importFormulas.

Настройка конфигурации отправки событий в Apache Kafka

Отправка событий с сервера управления (master) в Apache Kafka выполняется с помощью библиотеки librdkafka.

Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/returner.conf.

Пример файла:

returner.kafka_custom.bootstrap:
  - "<kafka_host>:<kafka_port>"
returner.kafka_custom.topic: 'salt-topic'
returner.kafka_custom.security.protocol: ""
returner.kafka_custom.ssl.cipher.suites: ""
returner.kafka_custom.ssl.curves.list: ""
returner.kafka_custom.ssl.sigalgs.list: ""
returner.kafka_custom.ssl.key.location: ""
returner.kafka_custom.ssl.key.password: ""
returner.kafka_custom.ssl.key.pem: ""
returner.kafka_custom.ssl.certificate.location: ""
returner.kafka_custom.ssl.certificate.pem: ""
returner.kafka_custom.ssl.ca.location: ""
returner.kafka_custom.ssl.ca.pem: ""
returner.kafka_custom.ssl.ca.certificate.stores: ""
returner.kafka_custom.ssl.crl.location: ""
returner.kafka_custom.ssl.keystore.location: ""
returner.kafka_custom.ssl.keystore.password: ""
returner.kafka_custom.ssl.providers: ""
returner.kafka_custom.ssl.engine.id: ""
returner.kafka_custom.enable.ssl.certificate.verification: ""
returner.kafka_custom.ssl.endpoint.identification.algorithm: ""
returner.kafka_custom.debug: "all"
returner.kafka_custom.log_level: ""
returner.kafka_custom.allow.auto.create.topics: "true"
event_return: kafka_custom

В таблицах ниже приводится описание параметров из файла.

Обязательные параметры:

Наименование Описание Пример значения

returner.kafka_custom.bootstrap

Список хостов с указанием портов, где запущен брокер сообщений Apache Kafka

"192.168.1.101:9092"

returner.kafka_custom.topic

Топик Apache Kafka

salt-topic

event_return

Выбор способа отправки событий возврата

kafka_custom

Опциональные параметры:

Наименование Описание Пример значения

returner.kafka_custom.security.protocol

Протокол, который используется для соединения с Apache Kafka

plaintext

returner.kafka_custom.ssl.cipher.suites

Набор шифров (именованная комбинация аутентификации, шифрование, MAC-адреса и алгоритмы обмена ключами), используемые для согласования параметров безопасности сетевого подключения по протоколу SSL. Подробнее см. SSL_CTX_set_cipher_list

returner.kafka_custom.ssl.curves.list

Поддерживаемые кривые (supported curves), стандартные/именованные или «явные» GF(2^k) или GF(p) для использования сервером, которые передаются в сообщении TLS ClientHello. Подробнее см. SSL_CTX_set1_curves_list

returner.kafka_custom.ssl.sigalgs.list

Поддерживаемые алгоритмы цифровой подписи для использования сервером, которые передаются в сообщении TLS ClientHello. Подробнее см. SSL_CTX_set1_sigalgs

returner.kafka_custom.ssl.key.location

Путь к закрытому ключу клиента (PEM), который используется для аутентификации

returner.kafka_custom.ssl.key.password

Пароль для закрытого ключа (для использования с ssl.key.location и set_ssl_cert())

returner.kafka_custom.ssl.key.pem

Строка закрытого ключа клиента (в PEM-формате), которая используется для аутентификации

returner.kafka_custom.ssl.certificate.location

Путь к публичному ключу клиента (в PEM-формате), который используется для аутентификации

returner.kafka_custom.ssl.certificate.pem

Строка публичного ключа клиента (в PEM-формате), которая используется для аутентификации

returner.kafka_custom.ssl.ca.location

Путь к файлу или каталогу сертификатов CA (Certificate Authority) для проверки ключа брокера

returner.kafka_custom.ssl.ca.pem

Строка сертификата CA (в PEM-формате) для проверки ключа брокера

returner.kafka_custom.ssl.ca.certificate.stores

Список хранилищ сертификатов Windows (через запятую), из которых можно загрузить сертификаты CA. Сертификаты будут загружены в том же порядке, в котором указаны хранилища

returner.kafka_custom.ssl.crl.location

Путь к CRL для валидации сертификата брокера

returner.kafka_custom.ssl.keystore.location

Путь к хранилищу ключей клиента (PKCS#12), которые используются для аутентификации

returner.kafka_custom.ssl.keystore.password

Пароль хранилища ключей клиента (PKCS#12)

returner.kafka_custom.ssl.providers

Список провайдеров (разделенный запятыми) OpenSSL 3.0.x

returner.kafka_custom.ssl.engine.id

Идентификатор OpenSSL

returner.kafka_custom.enable.ssl.certificate.verification

Включение проверки сертификата встроенного брокера OpenSSL (сервера). Эта проверка может быть расширена приложением путем реализации certificate_verify_cb

returner.kafka_custom.ssl.endpoint.identification.algorithm

Алгоритм идентификации endpoint для проверки имени хоста брокера с использованием сертификата брокера

returner.kafka_custom.debug

Список контекстов отладки (разделенный запятыми), которые необходимо включить

returner.kafka_custom.log_level

Уровень логирования

returner.kafka_custom.allow.auto.create.topics

Разрешение автоматического создания темы в брокере при подписке на несуществующие темы или назначения им тем.

Для корректной работы данной конфигурации брокер должен быть настроен с параметром auto.create.topics.enable=true
В качестве инструкции по генерации сертификатов используйте документ "Using SSL with librdkafka".