Обновление

Обновление компонентов продукта на сервере выполняется стандартными средствами пакетного менеджера с учетом особенностей работы в качестве контроллера домена.

Перед началом процедуры обновления внимательно ознакомьтесь с разделом "Upgrade" для устанавливаемой версии в файле ReleaseNotes.md, поставляемом в составе дистрибутива продукта, и таблицей совместимости версий Эллес.

Особенности обновления на отдельные версии

В разделе описываются некоторые особенности выпускаемых версий Эллес, влияющие на процедуру обновления, включая необходимость повторного выполнения операции join, и конфигурирование (например, добавление новых сервисов).

Они должны учитываться при обновлении с любой версии ниже указанной на указанную версию и последующие версии.

1.9.0

Начиная с версии 1.9.0 в состав Эллес включен сервис metrics_manager, обеспечивающий формирование и предоставление метрик для мониторинга работы служб контроллера домена по протоколу LDAP.

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для формирования и получения значений метрик после обновления на версию 1.9.0 необходимо добавить на первое место в списке имя сервиса мониторинга — metrics_manager.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис metrics_manager доступен по умолчанию.

1.10.0

Версия 1.10.0 содержит изменения в исходном коде, связанные с исправлением проблем репликации атрибутов. Для корректной работы исправлений в рамках существующих баз данных службы каталогов после установки версии необходимо повторно выполнить операцию присоединения (join).

Начиная с версии 1.10.0 в состав Эллес включен сервис lacheck, обеспечивающий периодический запуск процедуры обработки связанных атрибутов (linked attributes).

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для использования сервиса lacheck после обновления на версию 1.10.0 необходимо добавить в список его имя.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, lacheck
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис lacheck доступен по умолчанию.

См. подробнее в разделе «Настройка обработки связанных атрибутов».

Начиная с версии 1.10.0 в состав Эллес включен сервис disco, обеспечивающий асинхронное обнаружение (discovering) серверов глобального каталога.

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для использования сервиса disco после обновления на версию 1.10.0 необходимо добавить в список его имя.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, disco
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис disco доступен по умолчанию.

См. подробнее в разделе «Настройка клиента глобального каталога».

1.11.1

Версия 1.11.1 содержит изменения в исходном коде, связанные с поддержкой расширения схемы дополнительными атрибутами. Для корректной работы исправлений в рамках существующих баз данных службы каталогов после установки версии необходимо повторно выполнить операцию присоединения (join).

1.14.0

Начиная с версии 1.14.0 в состав Эллес включен сервис tdo, обеспечивающий пересчет значения атрибута trustPosixOffset.

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для использования сервиса tdo после обновления на версию 1.14.0 необходимо добавить в список его имя.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, lacheck, disco, tdo
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис tdo доступен по умолчанию.

1.15.0

В процессе Kerberos-аутентификации контроллеры домена Эллес для обеспечения корректного формирования билетов обращаются к контроллерам, обладающим ролью глобального каталога. Данный процесс может занимать некоторое время, особенно в условиях, когда некоторые контроллеры с ролью глобального каталога могут быть недоступны.

Для полноценной подготовки билетов в файл krb5.conf в секцию [libdefaults] необходимо добавить строку:

kdc_timeout = 30

1.17.0

Сервис mt

Начиная с версии 1.17.0 в состав Эллес включен универсальный сервис mt, обеспечивающий автоматический запуск периодических задач. Например, он отвечает за запуск периодической задачи, которую в прежних версиях Эллес выполнял сервис tdo.

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для использования сервиса mt после обновления на версию 1.17.0 необходимо добавить в список его имя. Имя сервиса tdo необходимо удалить.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, lacheck, disco, mt
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис mt доступен по умолчанию.

Сервис core_manager

Начиная с версии 1.17.0 в состав Эллес включен сервис core_manager, предоставляющий gRPC API для управления доменом и контроллером домена.

Если в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf) существующего экземпляра Эллес явно задано значение параметра server services, для использования сервиса core_manager после обновления на версию 1.17.0 необходимо добавить в список его имя.

Например:

[global]
    ...
    server services = metrics_manager, s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, lacheck, disco, mt, core_manager
    ...

При первичной установке пакета inno-samba дополнительные действия не требуются — сервис core_manager доступен по умолчанию.

Параметр ad dc functional level

Начиная с версии 1.17.0 параметр ad dc functional level не поддерживается. Не допускается передавать его значение в формате --option="ad dc functional level = <level>" при добавлении контроллера домена Эллес в существующий домен или развертывании нового домена в существующем лесу, а также явно задавать значение для него в конфигурационном файле smb.conf.

Если параметр задан в файле smb.conf, он игнорируется. При этом в логах фиксируется сообщение о наличии в конфигурации неизвестного параметра. Удалите параметр из smb.conf.

1.18.0

Для корректной работы исправлений в рамках существующих баз данных службы каталогов после установки версии необходимо повторно выполнить операцию присоединения (join).

Получение информации о текущих версиях

Для получения информации об установленной версии пакета inno-samba выполните:

samba-tool -V
inno-samba 1.3.2 (Samba 4.20.0pre1-GIT-9115c9a)

Вывод команды содержит текущую установленную версию пакета с доработками «Т1 Иннотех», а также версию лежащей в основе пакета сборки исходного проекта Samba.

Если на сервере установлена промежуточная сборка, то в имени пакета в выводе также будет присутствовать номер сборки и хеш комита:

samba -V
Version inno-samba 1.4.6-2286-adf179e2 (Samba 4.21-0pre1-GIT-adf179e)

Для получения информации об установленной версии пакета inno-samba-dc-exporter:

  • используйте информацию из файла version.py:

    cat /app/samba-dc-exporter/version.py
    VERSION="1.7.3"
  • или выполните:

    • Astra Linux

    • РЕД ОС

    apt-cache policy inno-samba-dc-exporter | head -n 2
    inno-samba-dc-exporter:
      Installed: 1.7.3-446157.d16aa9c4
    dnf list installed samba-dc-exporter
    samba-dc-exporter.noarch            1.7.3-1              @@commandline

Для получения информации об установленной версии пакета dsm выполните:

  • Astra Linux

  • РЕД ОС

apt-cache policy dsm | head -n 2
dsm:
  Installed: 1.8.0-1
dnf info dsm | head -n 4
...
Установленные пакеты
Имя          : dsm
Версия       : 1.8.0

Обновление пакета inno-samba

Процесс обновления компонента inno-samba на работающем контроллере домена включает следующие шаги:

  • подготовка к обновлению;

  • перевод контроллера домена в режим обслуживания;

    Если обновление на очередную версию предусматривает повторный ввод сервера в роли контроллера домена, вместо этого шага требуется выполнить операцию demote (см. подробное описание процедуры в разделе «Удаление контроллера домена»).
  • обновление пакетов;

  • вывод контроллера домена из режима обслуживания.

    Если обновление на очередную версию предусматривает повторный ввод сервера в роли контроллера домена, вместо этого шага требуется повторно выполнить операцию join (см. подробное описание процедуры в разделе «Присоединение к домену»).

Подготовка к обновлению

Перед началом процесса обновления:

  1. По крайней мере на одном контроллере домена (желательно, чтобы это был контроллер с ролью PDC_Emulator FSMO) создайте резервную копию домена с использованием утилиты samba-tool (cм. раздел «Резервное копирование и восстановление»).

  2. Убедитесь, что на сервере настроен доступ к apt/yum-репозиторию с устанавливаемой версией, либо скачайте архив с пакетом требуемой версии (см. подробнее в разделе «Дистрибутив»).

  3. Ознакомьтесь с описанием изменений, внесенных в рамках устанавливаемой версии, в файле ReleaseNotes.md.

Обновление inno-samba на контроллере домена

Чтобы выполнить обновление:

  1. Проверьте текущую версию пакета:

    samba-tool -V
  2. Переведите контроллер домена в режим обслуживания:

    sudo samba-tool maintenance on
    См. более подробную информацию о данном режиме работы контроллера домена в разделе «Режим обслуживания».
  3. Остановите службу inno-samba:

    sudo systemctl stop inno-samba.service
    После обновления DNS-записей требуется некоторое время, чтобы клиенты потеряли связь с текущим контроллером и переключились на другой.
  4. При установке из репозитория — убедитесь, что требуемая версия пакета доступна:

    • Astra Linux

    • РЕД ОС

    apt-cache policy inno-samba
    dnf list --showduplicates inno-samba
  5. Обновите пакет:

    • при обновлении из репозитория до последней доступной версии:

      • Astra Linux

      • РЕД ОС

      sudo apt install inno-samba -y
      sudo dnf install inno-samba -y
    • при обновлении из репозитория до определенной версии:

      • Astra Linux

      • РЕД ОС

      sudo apt install inno-samba=<specific_version>
      sudo dnf install inno-samba-<specific_version>
    • при обновлении с помощью скаченного локального пакета:

      • Astra Linux

      • РЕД ОС

      cd /path/to/package
      sudo apt install ./inno-samba_<new-version>_amd64.deb
      cd /path/to/package
      sudo dnf install ./inno-samba-<new-version>-1.x86_64.rpm
  6. Запустите службу inno-samba:

    sudo systemctl start inno-samba.service
  7. Убедитесь, что служба активна:

    sudo systemctl status inno-samba.service
    * inno-samba.service - Samba AD Daemon
       Loaded: loaded (/lib/systemd/system/inno-samba.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2024-03-13 11:50:34 MSK; 4h 2min ago
     Main PID: 515 (samba)
       Status: "samba: ready to serve connections..."
        Tasks: 60 (limit: 4633)
       Memory: 397.5M
          CPU: 42min 5.883s
       CGroup: /system.slice/inno-samba.service
               ├─ 515 samba: root process .
               ├─ 686 samba: tfork waiter process(687)
               ├─ 687 samba: task[s3fs] pre-fork master
               ├─ 688 samba: tfork waiter process(689)
               ├─ 689 samba: task[rpc] pre-fork master
               ├─ 690 samba: tfork waiter process(692)
               ├─ 691 samba: tfork waiter process(693)
    ...
  8. Убедитесь в отсутствии ошибок в лог-файлах Эллес.

    Для получения текущего пути к логам, например, используйте команду samba -b | grep LOGFILEBASE или testparm -sv | grep 'log file'.

    Для получения текущих настроек логирования используйте команду testparm -sv | grep 'log level'.

  9. Выведите контроллер домена из режима обслуживания:

    sudo samba-tool maintenance off
  10. Проверьте работоспособность Эллес — например, убедитесь, что пользователи могут входить в домен через обновленный контроллер.

Обновление inno-samba на нескольких контроллерах домена

Во избежание потери данных при необходимости обновления нескольких контроллеров домена Эллес рекомендуется придерживаться следующей последовательности шагов:

  1. Выполните обновление пакета inno-samba на контроллере домена, который либо не имеет роли FSMO, либо имеет наименьшее количество таких ролей.

  2. Убедитесь, что между контроллерами домена корректно работает репликация:

    samba-tool drs showrepl
  3. Выполните обновление на остальных контроллерах домена — обновляйте контроллеры один за другим, начиная с контроллеров с минимальным количеством ролей FSMO и каждый раз проверяя корректность работы репликации.

Такая последовательность обновления позволяет выявить возможные проблемы при эксплуатации новой версии пакета до начала обновления контроллера с ролью PDC_Emulator FSMO. Если найти решение для возникших проблем не удастся, можно будет вернуться на прежнюю версию без перерывов в работе домена или потери данных.

Некоторые команды, выполняемый с помощью утилиты samba-tool, позволяют изменять данные в локальной базе данных непосредственно на диске. В процессе обновления рекомендуется воздержаться от внесения таких изменений.

Обновление пакета dsm

Приводится пример обновления пакета dsm при установке на контроллере домена Эллес. Если пакет установлен на компьютере администратора или промежуточном сервере, порядок действий по обновлению аналогичен, за исключением действий по запуску и проверке работоспособности приложения.

Чтобы обновить пакет dsm:

  1. Проверьте текущую версию пакета:

    • Astra Linux

    • РЕД ОС

    apt-cache policy dsm | head -n 2
    dsm:
      Installed: 1.8.0-1
    dnf list installed dsm
    dsm.x86_64            1.8.0-1              @@commandline
  2. Остановите службу dsm:

    sudo systemctl stop dsm.service
  3. При установке из apt/yum-репозитория — убедитесь, что требуемая версия пакета доступна:

    • Astra Linux

    • РЕД ОС

    apt-cache policy dsm
    dnf list --showduplicates dsm
  4. Обновите пакет:

    • при обновлении из apt/yum-репозитория до последней доступной версии:

      • Astra Linux

      • РЕД ОС

      sudo apt install dsm -y
      sudo dnf install dsm -y
    • при обновлении из apt/yum-репозитория до определенной версии:

      • Astra Linux

      • РЕД ОС

      sudo apt install dsm=<specific_version> -y
      sudo dnf install dsm-<specific_version> -y
    • при обновлении с помощью скаченного локального deb-пакета:

      • Astra Linux

      • РЕД ОС

      cd /path/to/package
      sudo apt install ./dsm-<new_version>-1_amd64.deb -y
      cd /path/to/package
      sudo dnf install ./dsm-<new_version>-1.x86_64.rpm -y
  5. Сервис запускается автоматически после установки, используя настройки из существующего файла /opt/dsm/application.yml. Для проверки работоспособности сервиса выполните:

    sudo systemctl status dsm
    * dsm.service
       Loaded: loaded (/etc/systemd/system/dsm.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2024-03-13 09:56:17 MSK; 3h 40min ago
     Main PID: 1901 (dsm)
        Tasks: 46 (limit: 4563)
       Memory: 215.4M
          CPU: 6min 34.518s
       CGroup: /system.slice/dsm.service
               └─1901 /opt/dsm/bin/dsm
  6. Откройте приложение в веб-браузере на порте, указанном в файле application.yml.

В случае недоступности веб-интерфейса приложения см. логи в каталоге, указанном в application.yml.

Обновление пакета inno-samba-dc-exporter

Чтобы обновить пакет inno-samba-dc-exporter:

  1. Проверьте текущую версию пакета:

    • Astra Linux

    • РЕД ОС

    apt-cache policy inno-samba-dc-exporter | head -n 2
    inno-samba-dc-exporter:
      Installed: 1.7.2
    dnf list installed samba-dc-exporter
    samba-dc-exporter.noarch            1.7.3-1              @@commandline
  2. Остановите сервис samba-dc-exporter:

    sudo systemctl stop samba-dc-exporter.service
  3. При установке из apt/yum-репозитория — убедитесь, что требуемая версия пакета доступна:

    • Astra Linux

    • РЕД ОС

    apt-cache policy inno-samba-dc-exporter
    dnf list --showduplicates samba-dc-exporter
  4. Обновите пакет:

    • при обновлении из apt-репозитория до последней доступной версии:

      • Astra Linux

      • РЕД ОС

      sudo apt install inno-samba-dc-exporter -y
      sudo dnf install samba-dc-exporter -y
    • при обновлении из apt-репозитория до определенной версии:

      • Astra Linux

      • РЕД ОС

      sudo apt install inno-samba-dc-exporter=<specific_version> -y
      sudo dnf install samba-dc-exporter-<specific_version> -y
    • при обновлении с помощью скаченного локального deb-пакета:

      • при необходимости обновите пакет python3-prometheus-client (пакет требуемой версии поставляется вместе с inno-samba-dc-exporter):

        • Astra Linux

        • РЕД ОС

        cd /path/to/package
        sudo apt install ./python3-prometheus-client-<new_version>_amd64.deb -y
        cd /path/to/package
        sudo dnf install ./python3-prometheus-client_<new_version>-1.x86_64.rpm -y
      • установите требуемую версию пакета inno-samba-dc-exporter:

        • Astra Linux

        • РЕД ОС

        cd /path/to/package
        sudo apt install ./inno-samba-dc-exporter_<new_version>_amd64.deb -y
        cd /path/to/package
        sudo dnf install ./samba-dc-exporter-<new_version>-1.noarch.rpm -y
  5. Сервис запускается автоматически после установки, используя настройки из существующих файлов /app/samba-dc-exporter/etc/config.yaml и /app/samba-dc-exporter/etc/cred. Для проверки работоспособности сервиса выполните:

    sudo systemctl status samba-dc-exporter.service
    * samba-dc-exporter.service - Samba DC exporter
       Loaded: loaded (/etc/systemd/system/samba-dc-exporter.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2024-03-13 14:17:01 MSK; 1min 14s ago
     Main PID: 4355 (python3)
        Tasks: 4 (limit: 4563)
       Memory: 55.9M
          CPU: 19.969s
       CGroup: /system.slice/samba-dc-exporter.service
               ├─4355 /usr/bin/python3 /app/samba-dc-exporter/start_service.py
               └─4389 /usr/bin/python3 /app/samba-dc-exporter/samba_exporter.py
  6. Убедитесь, что метрики доступны по ожидаемому URL. Например:

    curl -u dc-exporter-user:dc-exporter-password http://127.0.0.1:9099

В случае недоступности метрик по ожидаемому URL см. логи экспортера в каталоге, указанном в config.yaml.