Включение модуля salt-api
-
Создайте конфигурационный файл
/etc/salt/master.d/salt-api.confи задайте в нем значения параметров согласно приведенному примеру:rest_cherrypy: port: 8000 host: 0.0.0.0 debug: "True" disable_ssl: "True" netapi_enable_clients: - local - local_async - local_batch - local_subset - runner - runner_async - ssh - wheel - wheel_asyncГде:
-
rest_cherrypy— параметры управления конфигурацией встроенного веб-сервера Cherrypy, который используетsalt-api:-
port— укажите порт, который будет запущенsalt-api(например,8000); -
host— укажите хост; значение0.0.0.0указывает, что сервер будет доступен по всем IP-адресам; -
debug— (опционально) включите (True) или отключите (False) режим отладки (debug mode) дляsalt-api; -
disable_ssl— (опционально) если в первом шаге вы не установили SSL-сертификаты, задайте значениеTrue;
-
-
netapi_enable_clients— клиенты, которые могут использоватьsalt_apiдля выполнения команд и получения информации:-
local— позволяет выполнять команды локально на целевых системах; -
local_async— позволяет выполнять команды локально асинхронно, что означает, что вызов не блокирует выполнение и возвращает управление сразу; -
local_batch— позволяет выполнять команды в пакетном режиме, что может быть полезно для управления группами хостов; -
local_subset— позволяет выполнять команды на подмножестве целевых систем; -
runner— позволяет использовать функцииrunner, которые предназначены для выполнения задач управления и получения информации о состоянии системы; -
runner_async— позволяет использовать функцииrunner, но выполняет команды асинхронно; -
ssh— позволяет использовать SSH для выполнения команд на удаленных системах; -
wheel— позволяет использовать функцииwheelдля управления и мониторинга систем в реальном времени; -
wheel_async— позволяет использовать функцииwheel, но выполняет команды асинхронно.
-
-
-
Cоздайте конфигурационный файл
/etc/salt/master.d/api_auth.confи задайте в нем настройки аутентификации в модулеsalt-api.Пример файла при использовании PAM-аутентификации:
external_auth: pam: salt_api: - ".*" - "@runner" - "@wheel" - "@jobs"Где:
-
external_auth— настройки параметров внешней аутентификации для заданных пользователей на выполнение определенных функций на агентах (minions);-
pam— для аутентификации используется PAM — стандартный механизм аутентификации в Unix-подобных системах:-
salt_api— имя пользователя (пользователь должен быть добавлен в систему; для пользователя должен быть задан пароль), для которого применяются правила доступа, перечисленные ниже:-
.*— разрешает доступ ко всем целям; -
@runner— разрешает доступ к функциям runner — механизму в SaltStack, который позволяет выполнять задачи управления и получать информацию о состоянии системы; -
@wheel— разрешает доступ к функциям wheel — механизму в SaltStack, который используется для управления и мониторинга систем в реальном времени; -
@jobs— разрешает доступ к информации о заданиях (jobs), например, просмотр состояния и результатов выполнения заданий.
-
-
-
Пример файла при использовании LDAP-аутентификации:
external_auth: ldap: <доменный пользователь>: - ".*" - "@runner" - "@wheel" - "@jobs" auth.ldap.uri: 'ldaps://<ip-адрес контроллера домена>:636' auth.ldap.scope: 2 auth.ldap.no_verify: True auth.ldap.anonymous: False auth.ldap.groupou: 'Groups' auth.ldap.basedn: DC=<имя домена>,DC=<имя домена>,DC=<имя домена> (пример: DC=test,DC=example,DC=com) auth.ldap.binddn: CN={{username}},CN=Users,DC=<имя домена>,DC=<имя домена>,DC=<имя домена> пример: DC=test,DC=example,DC=com) auth.ldap.bindpw: "" auth.ldap.filter: uid={{username}} auth.ldap.accountattributename: memberUid auth.ldap.groupclass: posixGroupГде:
-
external_auth— настройки параметров внешней аутентификации для заданных пользователей на выполнение определенных функций на агентах (minions);-
ldap— для аутентификации используется LDAP — стандартный механизм аутентификации в Unix-подобных системах:-
<доменный пользователь>— имя пользователя (пользователь должен быть добавлен в систему; для пользователя должен быть задан пароль), для которого применяются правила доступа, перечисленные ниже:-
.*— разрешает доступ ко всем целям; -
@runner— разрешает доступ к функциям runner — механизму в SaltStack, который позволяет выполнять задачи управления и получать информацию о состоянии системы; -
@wheel— разрешает доступ к функциям wheel — механизму в SaltStack, который используется для управления и мониторинга систем в реальном времени; -
@jobs— разрешает доступ к информации о заданиях (jobs), например, просмотр состояния и результатов выполнения заданий;
-
-
-
-
auth.ldap.uri— URI для подключения к серверу LDAP с использованием защищенного протокола LDAPS (LDAP Secure); -
auth.ldap.scope— область поиска в LDAP; -
auth.ldap.no_verify— определяет, следует или нет проверять сертификат сервера LDAP; -
auth.ldap.anonymous— определяет, будет ли аутентификация производиться анонимно или нет; -
auth.ldap.groupou— имя контейнера (или организационной единицы), в котором находятся группы пользователей; -
auth.ldap.basedn— базовый DN (Distinguished Name) для поиска в LDAP — это корень дерева, где начинается поиск пользователей и групп; -
auth.ldap.binddn— DN пользователя, который будет использоваться для подключения к серверу LDAP; {{username}} должно быть заменено на имя пользователя во время аутентификации; -
auth.ldap.bindpw— пароль для пользователя, указанного вbinddn; если поле пустое, это означает, что используется другой метод аутентификации или пароль отсутствует; -
auth.ldap.filter-- фильтр для поиска пользователя в LDAP по его UID (идентификатору пользователя); {{username}} должно быть заменено на фактическое имя пользователя; -
auth.ldap.accountattributename— атрибут, который используется для определения членов группы в LDAP; -
auth.ldap.groupclass— класс объектов групп в LDAP, который используется для поиска групп пользователей.
-
Настройка SSL
Чтобы включить модуль salt-api для модуля координации (SaltStack), используя защищенное SSL-соединение, выполните шаги:
-
Сгенерируйте SSL-сертификат и закрытый ключ для сервера управления (master). В качестве примера здесь и далее будет использоваться сертификат
salt-api.crtи закрытый ключsalt-api.key. -
Скопируйте сертификат
salt-api.crtи закрытый ключsalt-api.keyв директорию/etc/pki/tls/certs/. -
В конфигурационном файле
/etc/salt/master.d/salt-api.confукажите пути к файлу с сертификатом и закрытому ключу.Пример:
rest_cherrypy: port: 8000 host: 0.0.0.0 ssl_crt: /etc/pki/tls/certs/salt-api.crt ssl_key: /etc/pki/tls/certs/salt-api.keyГде:
-
port— порт, на котором будет запущен веб-сервер; -
host— IP-адрес, на котором будет открыт порт для подключения клиентов; -
ssl_crt— путь до файла с SSL-сертификатом сервера управления (master); -
ssl_key— путь до закрытого ключа от SSL-сертификата сервера управления (master).
-