Настройка получения 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_v2(%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означает, что такая проверка не будет выполняться.