Настройка получения pillar-файлов из БД

Создайте конфигурационный файл /etc/salt/master.d/ext_pillar.conf и задайте в нем настройки подключения к базе данных PostgreSQL, а также SQL-запрос на получение pillar-файлов устройств.

Пример:

postgres:
  host: 'osmax-postgres'
  port: 5432
  user: 'readonly'
  pass: 'password'
  db: 'osmax'

ext_pillar:
  - postgres:
    - query: "SELECT get_pillar(%s);"
      as_json: True

Где:

  • postgres — параметры подключения к PostgreSQL:

    • host — адрес хоста, на котором запущен сервер PostgreSQL;

    • port — порт, на котором сервер PostgreSQL ожидает подключения;

    • user — имя пользователя для подключения к БД;

    • pass — пароль пользователя;

    • db — название БД;

  • ext_pillar — источник данных для получения pillar-файлов:

    • postgres — использование данных из PostgreSQL;

      • query — SQL-запрос для получения данных;

      • as_json — указывает, что результат запроса должен быть представлен в формате JSON.

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

Настройка SSL

Чтобы подключиться к PostgreSQL с использованием SSL, в конфигурационном файле /etc/salt/master.d/ext_pillar.conf задайте значения параметров:

postgres:
  sslmode: 'verify-ca'
  sslrootcert: '/path/to/ca.crt'
  sslkey: null
  sslcert: null
  sslcrl: null

Где:

  • sslmode — режим SSL-соединения. Возможные значения:

    • disable — SSL не используется. Соединение устанавливается без шифрования;

    • allow  — SSL используется, если сервер поддерживает его. Если сервер не поддерживает SSL, соединение будет установлено без шифрования;

    • prefer — SSL используется, если сервер поддерживает его. Если сервер не поддерживает SSL, соединение будет установлено без шифрования;

    • require — SSL обязательно используется. Если сервер не поддерживает SSL, соединение не будет установлено;

    • verify-ca — SSL обязательно используется, и клиент проверяет сертификат сервера с использованием доверенного корневого сертификата (CA). Сертификат сервера должен быть действительным и подписанным доверенным CA;

    • verify-full — SSL обязательно используется, клиент проверяет сертификат сервера и также проверяет, что имя хоста сервера совпадает с именем, указанным в сертификате;

  • sslrootcert — путь к файлу сертификата корневого центра сертификации (CA). Значение должно быть указано, если в поле sslmode заданы значения verify-ca или verify-full. Значение null указывает на то, что клиент не предоставляет файл сертификата корневого центра сертификации (CA) для проверки подлинности сервера PostgreSQL;

  • sslkey — путь к файлу закрытого ключа клиента, который используется для аутентификации на сервере. Значение null указывает на то, что клиент не предоставляет закрытый ключ для аутентификации, например, если сервер не требует клиентской аутентификации;

  • sslcert — путь к файлу сертификата клиента, который также может использоваться для аутентификации на сервере. Значение null означает, что клиент не предоставляет сертификат, и, следовательно, не будет использоваться аутентификация с помощью сертификата;

  • sslcrl — путь к файлу списка отозванных сертификатов (CRL). Если он задан, клиент будет проверять, не был ли отозван сертификат сервера. Значение null означает, что такая проверка не будет выполняться.