Настройка подключения к S3-совместимому хранилищу
Чтобы использовать S3-совместимое хранилище в качестве пространства для хранения общих файлов конфигураций и файлов состояний, выполните шаги:
-
Cоздайте файл конфигурации сервера управления (master)
/etc/salt/master.d/fileserver_backend.confи в параметреfileserver_backendукажите имя хранилища, которое вы будете использовать в качестве бэкенда для файлов.Пример:
fileserver_backend: - s3fs
-
Cоздайте файл конфигурации сервера управления (master)
/etc/salt/master.d/s3.confи задайте в нем настройки подключения к S3-совместимому хранилищу.Пример:
s3.service_url: <s3_hostname>:<s3_port> s3.keyid: <acceess_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-совместимое хранилище.Для хранилища Ceph параметр s3.locationне учитывается. Если вы используете Сeph в качестве хранилища, укажите значениеdefault.Подробное описание всех параметров приведено в официальной документации.
-
-
Cоздайте файл конфигурации сервера управления (master)
/etc/salt/master.d/ext_pillar.confи задайте в нем настройки подключения к S3-совместимому хранилищу для хранения в отдельном бакете данных Pillar.Пример:
ext_pillar: - s3: service_url: <s3_hostname>:<s3_port> keyid: <acceess_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-хранилищу.Подробное описание всех полей приведено в официальной документации.
-
-
Cоздайте файл конфигурации сервера управления (master)
/etc/salt/master.d/api_auth.confи задайте в нем настройки аутентификации в модулеsalt-api.Пример:
external_auth: pam: salt_api: - ".*" - "@runner" - "@wheel" - "@jobs"Где:
-
external_auth— настройки параметров внешней аутентификации для заданных пользователей на выполнение определенных функций на агентах (minions);-
pam— для аутентификации используется PAM — стандартный механизм аутентификации в Unix-подобных системах:-
salt_api— имя пользователя (данный пользователь должен быть добавлен в систему; для пользователя должен быть задан пароль), для которого применяются правила доступа, перечисленные ниже:-
.*— разрешает доступ ко всем целям; -
@runner— разрешает доступ к функциям runner — механизму в SaltStack, который позволяет выполнять задачи управления и получать информацию о состоянии системы; -
@wheel— разрешает доступ к функциям wheel — механизму в SaltStack, который используется для управления и мониторинга систем в реальном времени; -
@jobs— разрешает доступ к информации о заданиях (jobs), например, просмотр состояния и результатов выполнения заданий.
-
-
-
-
Настройка SSL
Если вы подключаетесь к S3-совместимому хранилищу, используя защищенное SSL-соединение, выполните настройки:
-
В файле конфигурации сервера управления (master)
/etc/salt/master.d/s3.confзадайте значения параметров:s3.https_enable: True s3.verify_ssl: FalseПри выставлении значения Falseдля параметраverify_sslвалидация сертификата S3-совместимого хранилища выполняться не будет. -
В файле конфигурации сервера управления (master)
/etc/salt/master.d/ext_pillar.confзадайте значение параметра:ext_pillar: - s3: https_enable: True verify_ssl: FalseПри выставлении значения Falseдля параметраverify_sslвалидация сертификата S3-совместимого хранилища выполняться не будет.
Если требуется валидация сертификатов S3-совместимого хранилища, выполните следующие действия, выбрав один из двух вариантов, описанных ниже:
-
вариант 1:
-
Скопируйте файл СА-сертификатов на сервер управления (master).
-
Определите расположение хранилища сертификатов на сервере управления (master):
$ /opt/saltstack/salt/bin/python3 Python 3.10.13 (main, Oct 4 2023, 21:54:22) [GCC 11.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import certifi >>> certifi.where() '/opt/saltstack/salt/lib/python3.10/site-packages/certifi/cacert.pem'
-
Добавьте сертификат в хранилище.
Пример команды для добавления сертификата
ca.crt:cat ca.crt | sudo tee -a /opt/saltstack/salt/lib/python3.10/site-packages/certifi/cacert.pem
-
В файле конфигурации сервера управления (master)
/etc/salt/master.d/s3.confзадайте значение параметраverify_ssl: True(аналогично параметруhttps_enable: True).Пример:
s3.verify_ssl: True s3.https_enable: True -
В файле конфигурации сервера управления (master)
/etc/salt/master.d/ext_pillar.confзадайте значение параметраverify_ssl: True(аналогично параметруhttps_enable: True) .Пример:
ext_pillar: - s3: https_enable: True verify_ssl: True
-
-
вариант 2:
-
Разместите файл СА-сертификатов, используемый в качестве Issuer в S3-совместимом хранилище, на сервере управления (master) по пути
/etc/salt/pki/ca.crt. -
В файле конфигурации сервера управления (master)
/etc/salt/master.d/s3.confзадайте значение параметраverify_ssl: /etc/salt/pki/ca.crt.Пример:
s3.verify_ssl: /etc/salt/pki/ca.crt s3.https_enable: True -
В файле конфигурации сервера управления (master)
/etc/salt/master.d/ext_pillar.confзадайте значение параметраverify_ssl: /etc/salt/pki/ca.crt.Пример:
ext_pillar: - s3: https_enable: True verify_ssl: /etc/salt/pki/ca.crt
-