Обновление

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

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

Для получения информации об установленной версии пакета 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"
  • или выполните:

    apt-cache policy inno-samba-dc-exporter | head -n 2
    inno-samba-dc-exporter:
      Installed: 1.7.3-446157.d16aa9c4

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

apt-cache policy dsm | head -n 2
dsm:
  Installed: 1.8.0-1

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

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

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

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

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

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

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

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

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

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

  3. Убедитесь, что на сервере настроен доступ к apt-репозиторию с устанавливаемой версией.

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

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

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

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

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

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

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

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

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

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

      cd /path/to/package
      sudo apt install ./inno-samba_<new-version>_amd64.deb
  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. Убедитесь в отсутствии ошибок в лог-файлах Inno Samba.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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.yaml.

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

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

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

    apt-cache policy inno-samba-dc-exporter | head -n 2
    inno-samba-dc-exporter:
      Installed: 1.7.2
  2. Остановите сервис samba-dc-exporter:

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

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

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

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

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

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

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

        cd /path/to/package
        sudo apt install ./inno-samba-dc-exporter_<new_version>_amd64.deb
  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.