Bug 33437 - После обновления до текущей версии не удаётся поднять ни Alt-domain ни AD
Summary: После обновления до текущей версии не удаётся поднять ни Alt-domain ни AD
Status: NEW
Alias: None
Product: Branch p8
Classification: Distributions
Component: alterator-net-domain (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P3 blocker
Assignee: Andrey Cherepanov
QA Contact: qa-p8@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-30 20:56 MSK by apb
Modified: 2019-02-13 15:26 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description apb 2017-04-30 20:56:15 MSK
Бодрого времени суток!
Залил образ alt-8-server, далее после обновления попробовал поднять АД и получил на выходе:
Не удалось установить пароль администратора: ltdb: tdb(/var/lib/samba/private/sam.ldb): tdb_open_ex: could not open file /var/lib/samba/private/sam.ldb: No such file or directory Unable to open tdb '/var/lib/samba/private/sam.ldb': No such file or directory Failed to connect to 'tdb:///var/lib/samba/private/sam.ldb' with backend 'tdb': Unable to open tdb '/var/lib/samba/private/sam.ldb': No such file or directory ERROR(ldb): uncaught exception - Unable to open tdb '/var/lib/samba/private/sam.ldb': No such file or directory File "/usr/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 176, in _run return self.run(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/samba/netcmd/user.py", line 795, in run credentials=creds, lp=lp) File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line 57, in __init__ options=options) File "/usr/lib64/python2.7/site-packages/samba/__init__.py", line 115, in __init__ self.connect(url, flags, options) File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line 72, in connect options=options)

Далее удаляю samba-dc и ставлю samba. При установке подтягиваяются не все зависимости samba: при попытке apt-get samba - сообщения о необходимости более новых версий samba-tools и прочего. Не сохранил перечень пакетов. Сейчас качаю образ для записи на флешку и для установки.
После установки всех пакетов необходимых не подымается ldap для ALT-домена. Ошибка:
slapd -T test
5906217e /etc/openldap/slapd.conf: line 188: unknown attr "sambaNTPassword" in to clause
5906217e <access clause> ::= access to <what> [ by <who> [ <access> ] [ <control> ] ]+ 
<what> ::= * | dn[.<dnstyle>=<DN>] [filter=<filter>] [attrs=<attrspec>]
<attrspec> ::= <attrname> [val[/<matchingRule>][.<attrstyle>]=<value>] | <attrlist>
<attrlist> ::= <attr> [ , <attrlist> ]
<attr> ::= <attrname> | @<objectClass> | !<objectClass> | entry | children
<who> ::= [ * | anonymous | users | self | dn[.<dnstyle>]=<DN> ]
	[ realanonymous | realusers | realself | realdn[.<dnstyle>]=<DN> ]
	[dnattr=<attrname>]
	[realdnattr=<attrname>]
	[group[/<objectclass>[/<attrname>]][.<style>]=<group>]
	[peername[.<peernamestyle>]=<peer>] [sockname[.<style>]=<name>]
	[domain[.<domainstyle>]=<domain>] [sockurl[.<style>]=<url>]
	[dynacl/<name>[/<options>][.<dynstyle>][=<pattern>]]
	[ssf=<n>] [transport_ssf=<n>] [tls_ssf=<n>] [sasl_ssf=<n>]
<style> ::= exact | regex | base(Object)
<dnstyle> ::= base(Object) | one(level) | sub(tree) | children | exact | regex
<attrstyle> ::= exact | regex | base(Object) | one(level) | sub(tree) | children
<peernamestyle> ::= exact | regex | ip | ipv6 | path
<domainstyle> ::= exact | regex | base(Object) | sub(tree)
<access> ::= [[real]self]{<level>|<priv>}
<level> ::= none|disclose|auth|compare|search|read|{write|add|delete}|manage
<priv> ::= {=|+|-}{0|d|x|c|s|r|{w|a|z}|m}+
<control> ::= [ stop | continue | break ]
dynacl:
	<name>=ACI	<pattern>=<attrname>

slaptest: bad configuration file!

Сейчас повторю установку "с ноля" устанавливая не AD-сервер, а дефолный alt-домен без обнов.
Comment 1 Evgeny Sinelnikov 2017-09-10 13:51:10 MSK
Уточните порядок действий, который вы выполняете для поднятия AD. Можно в виде пошаговой инструкции. Вывод ошибок ничего об этом не говорит. Непонятно как вопроизвести ваш сценарий установки.

У меня есть шаблон, который поднимает сервер и клиент:
https://github.com/mastersin/samba-stand

Возможно, проблема уже решена?
Comment 2 apb 2019-02-11 13:02:53 MSK
на текущий момент ошибка воспроизводится.
Выполнение миграции осуществляется в соответствии с https://forum.altlinux.org/index.php?topic=41733.msg330340#msg330340



tree /opt/
/opt/
|--samba.PDC
|  |--dbdir
|  |  |--schannel_store.tdb
|  |  |--secrets.tdb
|  |  |--account_policy.tdb
|  |  |--group_mapping.tdb
|  |  |--gencache_notrans.tdb
|  |--smb.conf
|--titan.zn
|  |--dhcpd.conf
|  |--samba.zip
|  |--samba_libs.zip
|  |--titan.zn.ldif
|  |--bind.zip
|  |--smb.conf
|  `--openldap.zip



Процесс миграции:



service slapd stop
chgrp ldap /etc/openldap/slapd.conf /etc/openldap/*titan.zn*.conf

cd /usr/lib64/

ln -sf sasl2-3 /usr/lib64/sasl2


service slapd start
service slapd stop


slapadd -l /opt/titan.zn/titan.zn.ldif

chown ldap: -R /var/lib/ldap/bases/titan.zn

service slapd start

rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
mkdir -p /var/lib/samba/sysvol

samba-tool domain classicupgrade --dbdir=/opt/samba.PDC/dbdir/ --realm=titan.zn --dns-backend=SAMBA_INTERNAL /opt/samba.PDC/smb.conf

service slapd stop
service bind stop
chkconfig bind off
chkconfig slapd off

service samba start
chkconfig samba on

rm -rf /opt/titan.zn/ /opt/samba.PDC /var/lib/ldap/

samba-tool user setpassword administrator

#############################################################
Результат:
##############################################################

Stopping slapd service:                                                                                                                                                                                                                  [ DONE ]
Archive:  /opt/titan.zn/openldap.zip
replace /etc/openldap/slapd.conf? [y]es, [n]o, [A]ll, [N]one, [r]ename:   inflating: /etc/openldap/slapd.conf  
  inflating: /etc/openldap/slapd-titan.zn.conf  
Service slapd is not running.                                                                                                                                                                                                            [PASSED]
Adjusting environment for slapd:                                                                                                                                                                                                         [ DONE ]
Starting slapd service:                                                                                                                                                                                                                  [ DONE ]
Stopping slapd service:                                                                                                                                                                                                                  [ DONE ]

5c614635 hdb_monitor_db_open: monitoring disabled; configure monitor database to enable
-#################### 100.00% eta   none elapsed                 spd   1.6 M/s 
Closing DB...
Adjusting environment for slapd:                                                                                                                                                                                                         [ DONE ]
Starting slapd service: 

                                                                                                                                                                                                                                         [ DONE ]
Reading smb.conf
Processing section "[netlogon]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[change]"
Processing section "[unit]"
Processing section "[inform]"
Processing section "[media]"
Processing section "[print]"
Processing section "[scan]"
Processing section "[arch]"
Processing section " ...

Provisioning
Attempting to register passdb backend samba_dsdb
Successfully added passdb backend 'samba_dsdb'
Attempting to register passdb backend samba4
Successfully added passdb backend 'samba4'
Attempting to find a passdb backend to match ldapsam:ldap://127.0.0.1/ (ldapsam)
No builtin backend found, trying to load plugin
load_module_absolute_path: Module '/usr/lib64/samba-dc/pdb/ldapsam.so' loaded
Attempting to register passdb backend ldapsam
Successfully added passdb backend 'ldapsam'
Attempting to register passdb backend NDS_ldapsam
Successfully added passdb backend 'NDS_ldapsam'
Found pdb backend ldapsam
smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=TITAN.ZN))]
StartTLS issued: using a TLS connection
smbldap_open_connection: connection opened
ldap_connect_system: successful connection to the LDAP server
smbldap_search_domain_info: Problem during LDAPsearch: Timed out
smbldap_search_domain_info: Query was: dc=titan,dc=zn, (&(objectClass=sambaDomain)(sambaDomainName=TITAN.ZN))
pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain. We cannot work reliably without it.
pdb backend ldapsam:ldap://127.0.0.1/ did not correctly init (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO)
ERROR(<class 'passdb.error'>): uncaught exception - Cannot load backend methods for 'ldapsam:ldap://127.0.0.1/' backend (-1073741606,Configuration information could not be read from the domain controller, either because the machine is unavailable or access has been denied.)
  File "/usr/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 176, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/samba/netcmd/domain.py", line 1589, in run
    useeadb=eadb, dns_backend=dns_backend, use_ntvfs=use_ntvfs)
  File "/usr/lib64/python2.7/site-packages/samba/upgrade.py", line 485, in upgrade_from_samba3
    s3db = samba3.get_sam_db()
  File "/usr/lib64/python2.7/site-packages/samba/samba3/__init__.py", line 390, in get_sam_db
    return passdb.PDB(self.lp.get('passdb backend'))
Stopping slapd service:                                                                                                                                                                                                                  [ DONE ]
Stopping named service:                                                                                                                                                                                                                  [ DONE ]
Starting samba: Starting samba service:                                                                                                                                                                                                  [ DONE ]


New Password: 
Retype Password: 


ltdb: tdb(/var/lib/samba/private/sam.ldb): tdb_open_ex: could not open file /var/lib/samba/private/sam.ldb: No such file or directory

Unable to open tdb '/var/lib/samba/private/sam.ldb': No such file or directory
Failed to connect to 'tdb:///var/lib/samba/private/sam.ldb' with backend 'tdb': Unable to open tdb '/var/lib/samba/private/sam.ldb': No such file or directory
ERROR(ldb): uncaught exception - Unable to open tdb '/var/lib/samba/private/sam.ldb': No such file or directory
  File "/usr/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 176, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/samba/netcmd/user.py", line 828, in run
    credentials=creds, lp=lp)
  File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line 57, in __init__
    options=options)
  File "/usr/lib64/python2.7/site-packages/samba/__init__.py", line 114, in __init__
    self.connect(url, flags, options)
  File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line 72, in connect
    options=options)
Comment 3 Evgeny Sinelnikov 2019-02-11 20:30:45 MSK
Я не понимаю как воспроизвести проблему и в чём конкретно она состоит.

На упомянутом форуме приведено множество ссылок. Какой конкретно сценарий имеется в виду?

Вот это тоже непонятно: "Не удалось установить пароль администратора: ltdb:
tdb(/var/lib/samba/private/sam.ldb): tdb_open_ex: could not open file
/var/lib/samba/private/sam.ldb:..."

Что было исходно и до чего обновляли?
/var/lib/samba/private/sam.ldb - это база Active Directory. Она была и после обновления пропала? Причём тут тогда slapd и openldap?

Я готов заняться рассмотрением конкретной проблемы.
1) Вот так было (вот такая конфигурация, вот с такими пакетами и вот с такими конфигами, вот так ранее развёрнутая).
2) Вот так сделали (вот такие пакеты обновились, вот с таких версий до таких версий).
3) Вот так теперь оно не работает (вот такую команду запускаю, вот такая ошибка получается).

Нет особого смысла приводить вывод ошибки без команды, которая к ней привела. Как такую проблему решать - непонятно.
Comment 4 Evgeny Sinelnikov 2019-02-11 20:48:55 MSK
(In reply to comment #2)
> 
> tree /opt/
> /opt/
> |--samba.PDC
> |  |--dbdir
> |  |  |--schannel_store.tdb
> |  |  |--secrets.tdb
> |  |  |--account_policy.tdb
> |  |  |--group_mapping.tdb
> |  |  |--gencache_notrans.tdb
> |  |--smb.conf
> |--titan.zn
> |  |--dhcpd.conf
> |  |--samba.zip
> |  |--samba_libs.zip
> |  |--titan.zn.ldif
> |  |--bind.zip
> |  |--smb.conf
> |  `--openldap.zip
> 

Вот этот момент тоже непонятен. Это архив чего? АЛЬТ домена или Домена NT4 на базе самба?

Могу предположить, что это NT4 домен, для которого делается попытка миграции:
https://wiki.samba.org/index.php/Migrating_a_Samba_NT4_Domain_to_Samba_AD_(Classic_Upgrade)

Судя по тому какие ошибки возникли, некоторые файлы базы при попытке миграции либо не были созданы, либо легли не в те каталоги, где они ожидаются.

Чтобы попытаться воспроизвести эту проблему в такой виде, нам нужно поднять исходный NT4 домен. На текущий момент я не располагаю такими стендами. Давайте только уточним, мы этот вариант проблемы предполагаем в этой задаче?
Comment 5 apb 2019-02-12 09:33:00 MSK
Старый домен - это ldap+samba
Более детально, что есть что по поводу содержимого /opt ...

/opt/titan.zn/...
|  |--dhcpd.conf << только чтобы позже перенести привязанные MAC+IP и сейчас не участвует

|  |--samba.zip << Там содержимое /etc/samba/. по факту, оттуда забираю только smb.conf.

|  |--samba_libs.zip << /var/lib/samba/ в соответствии с инструкцией по миграции с wiki.samba.org + что было на форуме altlinux (zip -r /opt/titan.zn/samba_libs.zip /var/lib/samba/).

|  |--titan.zn.ldif << получено на ldap+samba сервера посредством slapcat -b 'dc=titan,dc=zn' -l /opt/titan.zn/titan.zn.ldif. Внесено изменение в строку 


|  |--bind.zip >> опять же не используемый архив bind с предыдущего сервера


|  |--smb.conf >> smb.conf отдельно от архива /etc/samba в который вносятся изменения в соответствии с маном форума (workgroup=TITAN.ZN)

|  `--openldap.zip << архив zip -r /opt/titan.zn/openldap.zip /etc/openldap/


Содержимое dbdir получено посредством распаковки samba_libs.zip (unzip -jd /opt/samba.PDC/dbdir/ /opt/titan.zn/samba.zip \*secrets.tdb \*schannel_store.tdb \*gencache_notrans.tdb \*group_mapping.tdb \*account_policy.tdb)
Comment 6 apb 2019-02-12 09:45:25 MSK
Последовательное выполнение преобразований на новом сервере (чистая установка)

service slapd stop
Stopping slapd service:                                                                                 
yes |unzip -jd /etc/openldap/ /opt/titan.zn/openldap.zip \*slapd.conf \*titan.zn\*.conf
Archive:  /opt/titan.zn/openldap.zip
replace /etc/openldap/slapd.conf? [y]es, [n]o, [A]ll, [N]one, [r]ename:   inflating: /etc/openldap/slapd
  inflating: /etc/openldap/slapd-titan.zn.conf  
chgrp ldap /etc/openldap/slapd.conf /etc/openldap/*titan.zn*.conf
cd /usr/lib64/

ln -sf sasl2-3 /usr/lib64/sasl2
service slapd start
Adjusting environment for slapd:                                                               [ DONE ]
Starting slapd service:                                                                        [ DONE ]

service slapd stop
Stopping slapd service:                                                                        [ DONE ]
 
slapadd -l /opt/titan.zn/titan.zn.ldif
5c626988 hdb_monitor_db_open: monitoring disabled; configure monitor database to enable
-#################### 100.00% eta   none elapsed                 spd   1.6 M/s 
Closing DB...
 
chown ldap: -R /var/lib/ldap/bases/titan.zn

service slapd start
Adjusting environment for slapd:                                                               [ DONE ]
Starting slapd service:                                                                        [ DONE ]
 
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
mkdir -p /var/lib/samba/sysvol
samba-tool domain classicupgrade --dbdir=/opt/samba.PDC/dbdir/ --realm=titan.zn --dns-backend=SAMBA_INTERNAL /opt/samba.PDC/smb.conf
Reading smb.conf
Processing section "[netlogon]"
Processing section "[freader]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[change]"
Processing section "[unit]"
Processing section "[inform]"
Processing section "[media]"
Processing section "..."
Provisioning
Attempting to register passdb backend samba_dsdb
Successfully added passdb backend 'samba_dsdb'
Attempting to register passdb backend samba4
Successfully added passdb backend 'samba4'
Attempting to find a passdb backend to match ldapsam:ldap://127.0.0.1/ (ldapsam)
No builtin backend found, trying to load plugin
load_module_absolute_path: Module '/usr/lib64/samba-dc/pdb/ldapsam.so' loaded
Attempting to register passdb backend ldapsam
Successfully added passdb backend 'ldapsam'
Attempting to register passdb backend NDS_ldapsam
Successfully added passdb backend 'NDS_ldapsam'
Found pdb backend ldapsam
smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=TITAN.ZN))]
StartTLS issued: using a TLS connection
smbldap_open_connection: connection opened
ldap_connect_system: successful connection to the LDAP server
smbldap_search_domain_info: Problem during LDAPsearch: Timed out
smbldap_search_domain_info: Query was: dc=titan,dc=zn, (&(objectClass=sambaDomain)(sambaDomainName=TITAN.ZN))
pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain. We cannot work reliably without it.
pdb backend ldapsam:ldap://127.0.0.1/ did not correctly init (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO)
ERROR(<class 'passdb.error'>): uncaught exception - Cannot load backend methods for 'ldapsam:ldap://127.0.0.1/' backend (-1073741606,Configuration information could not be read from the domain controller, either because the machine is unavailable or access has been denied.)
  File "/usr/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 176, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/samba/netcmd/domain.py", line 1589, in run
    useeadb=eadb, dns_backend=dns_backend, use_ntvfs=use_ntvfs)
  File "/usr/lib64/python2.7/site-packages/samba/upgrade.py", line 485, in upgrade_from_samba3
    s3db = samba3.get_sam_db()
  File "/usr/lib64/python2.7/site-packages/samba/samba3/__init__.py", line 390, in get_sam_db
    return passdb.PDB(self.lp.get('passdb backend'))
 
service slapd stop
Stopping slapd service:                                                                        [ DONE ]

service bind stop
Stopping named service:                                                                        [ DONE ]

chkconfig bind off
chkconfig slapd off
 
service samba start
Starting samba: Starting samba service:                                                    [ DONE ]
Comment 7 apb 2019-02-13 15:26:29 MSK
(В ответ на комментарий №4)
> (In reply to comment #2)
> > 
> > tree /opt/
> > /opt/
> > |--samba.PDC
> > |  |--dbdir
> > |  |  |--schannel_store.tdb
> > |  |  |--secrets.tdb
> > |  |  |--account_policy.tdb
> > |  |  |--group_mapping.tdb
> > |  |  |--gencache_notrans.tdb
> > |  |--smb.conf
> > |--titan.zn
> > |  |--dhcpd.conf
> > |  |--samba.zip
> > |  |--samba_libs.zip
> > |  |--titan.zn.ldif
> > |  |--bind.zip
> > |  |--smb.conf
> > |  `--openldap.zip
> > 
> 
> Вот этот момент тоже непонятен. Это архив чего? АЛЬТ домена или Домена NT4 на
> базе самба?
> 
> Могу предположить, что это NT4 домен, для которого делается попытка миграции:
> https://wiki.samba.org/index.php/Migrating_a_Samba_NT4_Domain_to_Samba_AD_(Classic_Upgrade)
> 
> Судя по тому какие ошибки возникли, некоторые файлы базы при попытке миграции
> либо не были созданы, либо легли не в те каталоги, где они ожидаются.
> 
> Чтобы попытаться воспроизвести эту проблему в такой виде, нам нужно поднять
> исходный NT4 домен. На текущий момент я не располагаю такими стендами. Давайте
> только уточним, мы этот вариант проблемы предполагаем в этой задаче?

Как отловить отрицательный ответ скрипта ... понять то, что она не находит посредством samba-tool?