Обновление

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

Особенности обновления на версию 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 в состав Эллес включен сервис 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 доступен по умолчанию.

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

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

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

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

Вывод команды содержит текущую установленную версию пакета с доработками ГК «Иннотех», а также версию лежащей в основе пакета сборки исходного проекта 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 на работающем контроллере домена включает следующие шаги:

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

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

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

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

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

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

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

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

  3. Ознакомьтесь с описанием изменений, внесенных в рамках устанавливаемой версии, в файле docs/CHANGELOG.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:

  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.