Bug 46071

Summary: Указание версии ОС при включении в домен Active Directory
Product: Sisyphus Reporter: Сергей Сысоев <sysoevsa>
Component: alterator-authAssignee: Andrey Cherepanov <cas>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: amakeenk, antohami, boyarsh
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
до/после патча
none
патч для варианта 1 none

Description Сергей Сысоев 2023-05-05 11:55:54 MSK
Created attachment 13117 [details]
до/после патча

Добрый день.

Для включение ПК/серверов под управлением ОС Альт в домен MS Active Directory (AD) используется встроенный скрипт system-auth из пакета alterator-auth:
system-auth write ad domain.local hostname domain username password

После включения сервера/ПК в домен в свойствах объекта computer в AD не прописыватся операционная система и версия (см. приложенное изображение, вариант справа).

В скрипте system-auth для включения в AD используется команда net ads join ..., в которой можно указать параметры osName и osVersion, которые должны быть прописаны в AD.

Как мне видится есть два вариант:
1. Автоопределение текущей версии и передача их в net ads join -- данный вариант приложен в виде патча (см. приложенное изображение, вариант справа).
2. Дополнительные параметры для передачи в скрипт system-auth write ad .... osName="ALT Server" osVersion="10.1", которые будут дальше передаваться в net ads join.

Прошу рассмотреть и добавить данный функционал и в P9, и в P10.

Спасибо!
Comment 1 Сергей Сысоев 2023-05-05 11:56:48 MSK
Created attachment 13118 [details]
патч для варианта 1
Comment 2 Сергей Сысоев 2023-05-05 12:01:32 MSK
>> После включения сервера/ПК в домен в свойствах объекта computer в AD не прописыватся операционная система и версия (см. приложенное изображение, вариант справа).

Следует читать как:
После включения сервера/ПК в домен в свойствах объекта computer в AD не прописывается операционная система и версия (см. приложенное изображение, вариант СЛЕВА).
Comment 3 Repository Robot 2023-05-07 18:41:59 MSK
alterator-auth-0.44.2-alt1 -> sisyphus:

 Sun May 07 2023 Andrey Cherepanov <cas@altlinux> 0.44.2-alt1
 - Pass OS name and version diring join to Active Directory (ALT #46071). Thanks Sergey Sysoev.
Comment 4 Andrey Cherepanov 2023-05-07 19:40:44 MSK
p9:
320097 FAILED #2 p9 alterator-auth.git=0.44.2-alt0.p9.1 libnss-role.git=0.5.6-alt1 alterator-default-configs.git=0.0.3-alt1 alterator-l10n.git=2.9.122-alt0.c9.1

p10:
320096 EPERM #1 p10 alterator-auth.git=0.44.2-alt1
Comment 5 Сергей Сысоев 2023-05-10 06:19:36 MSK
Предложенный Вами вариант
>> IFS=: read -r OS_NAME OS_VER <<<"$(hostnamectl | sed -E -n 's/^.*Operating System: (.*) ([0-9.]+).*$/\1:\2/p')"
более лаконичный, но не охватывает вариант стартеркитов.
Когда указано, к примеру:
 Operating System: ALT Starterkit (Hypericum)
то переменные OS_NAME, OS_VER остаются незаполненными.

Если считаете это не критичным, то можно не обращать внимание.
Comment 6 Andrey Cherepanov 2023-05-10 10:25:50 MSK
(Ответ для Сергей Сысоев на комментарий #5)
> Предложенный Вами вариант
> >> IFS=: read -r OS_NAME OS_VER <<<"$(hostnamectl | sed -E -n 's/^.*Operating System: (.*) ([0-9.]+).*$/\1:\2/p')"
> более лаконичный, но не охватывает вариант стартеркитов.
> Когда указано, к примеру:
>  Operating System: ALT Starterkit (Hypericum)
> то переменные OS_NAME, OS_VER остаются незаполненными.
> 
> Если считаете это не критичным, то можно не обращать внимание.

Неуказание версии у стартеркита является ошибкой. Заведите отдельный баг, пожалуйста.
Comment 7 Сергей Сысоев 2023-05-11 12:36:04 MSK
(In reply to Andrey Cherepanov from comment #6)
> Неуказание версии у стартеркита является ошибкой. Заведите отдельный баг,
> пожалуйста.

Завел баг #46115.



Пока экспериментировал, заметил и вспомнил, что hostnamectl идёт из комплекта systemd. Поэтому в Стартеркитах, основанных на SysV, нет ни systemd, ни hostnamectl.

Может быть стоит заменить на вариант чтения из файла /etc/os-release вместо hostnamectl? Если вообще дистрибутивы/стартеркиты на SysV имеют какую-то популярность.

Например:
IFS=: read -r OS_NAME OS_VER <<<"$(cat /etc/os-release | sed -E -n 's/^.*PRETTY_NAME=\"(.*) ([0-9.]+).*\"$/\1:\2/p')"