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

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

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

    Пример:

    fileserver_backend:
      - s3fs
  1. Cоздайте конфигурационный файл /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.
      Подробное описание всех параметров приведено в официальной документации.

Настройка SSL

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

s3.https_enable: True
s3.verify_ssl: False
При выставлении значения False для параметра verify_ssl валидация сертификата S3-совместимого хранилища выполняться не будет.

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

  • вариант 1:

    1. Скопируйте файл СА-сертификатов на сервер управления (master).

    2. Определите расположение хранилища сертификатов на сервере управления (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'
    3. Добавьте сертификат в хранилище.

      Пример команды для добавления сертификата ca.crt:

      cat ca.crt | sudo tee -a /opt/saltstack/salt/lib/python3.10/site-packages/certifi/cacert.pem
    4. В конфигурационном файле /etc/salt/master.d/s3.conf задайте значение параметра verify_ssl: True (аналогично параметру https_enable: True).

      Пример:

      s3.verify_ssl: True
      s3.https_enable: True
  • вариант 2:

    1. Разместите файл СА-сертификатов, используемый в качестве Issuer в S3-совместимом хранилище, на сервере управления (master) по пути /etc/salt/pki/ca.crt.

    2. В конфигурационном файле /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