treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

sambaのwinbindでエラー⇒DC降格も失敗

sambaで構成しているActive Directory環境でエラーが発生しました。
結論から言えば、エラーの対処はできず、諦めることになりました。誰得な内容で完全に自分用メモ。

注:いろいろいじっていますのでいくつか矛盾しているところはあるかも

エラー

経験値アップのために構築していたsamba4のActive Directory環境がありますが、そのドメインコントローラが一台エラーを起こしていました。

"sudo apt-get upgrade" でシステムをアップグレードすると,以下のような samba 関連のエラーが出るようになっていました。
--------------------------------------------------------------
~$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
1 個のパッケージが完全にインストールまたは削除されていません。
この操作後に追加で 0 B のディスク容量が消費されます。
続行しますか? [Y/n] Y
winbind (2:4.5.16+dfsg-1+deb9u2) を設定しています ...
Job for winbind.service failed because a timeout was exceeded.
See "systemctl status winbind.service" and "journalctl -xe" for details.
invoke-rc.d: initscript winbind, action "start" failed.
● winbind.service - Samba Winbind Daemon
Loaded: loaded (/lib/systemd/system/winbind.service; enabled; vendor preset:enabled)
Active: failed (Result: timeout) since Thu 2020-0x-00 09:33:04 JST; 118ms ago
Docs: man:winbindd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 860

x月 00 09:31:35 hostname systemd[1]: Starting Samba Winbind Daemon...
x月 00 09:31:35 hostname systemd[1]: winbind.service: Supervising process…its.
x月 00 09:33:04 hostname systemd[1]: winbind.service: Start operation tim…ing.
x月 00 09:33:04 hostname systemd[1]: winbind.service: Killing process 860…ILL.
x月 00 09:33:04 hostname systemd[1]: Failed to start Samba Winbind Daemon.
x月 00 09:33:04 hostname systemd[1]: winbind.service: Unit entered failed…ate.
x月 00 09:33:04 hostname systemd[1]: winbind.service: Failed with result …ut'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: パッケージ winbind の処理中にエラーが発生しました (--configure):
サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
libc-bin (2.24-11+deb9u4) のトリガを処理しています ...
処理中にエラーが発生しました:
winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)
~$
--------------------------------------------------------------

f:id:treedown:20200525181411p:plain
うーん。

調べる

調べてみたら「dpkg --audit」にヒントがあるかも。
そこで、やってみることにしました。
よく考えると、同じようなことは
Debianサーババージョンアップ(Stretchへ) - treedown’s Report

dist-upgrade後にapt --fix-broken installが要求された - treedown’s Report
でやっていたような。
--------------------------------------------------------------
~$ sudo dpkg --audit
以下のパッケージは最初の設定中に問題が発生したため、設定が終了していません。
dpkg --configure <パッケージ> か dselect で設定 (configure) メニューオプショ
ンを使って設定作業を再試行しなければなりません:
samba SMB/CIFS file, print, and login server for Unix
winbind service to resolve user and group information from Window
--------------------------------------------------------------
と表示されたので、
dpkg --configure <パッケージ> を試してみることにした。
--------------------------------------------------------------
結果⇒失敗。
エラーが出てしまいdpkgコマンドは完了しませんでした。

キャッシュを削除してみる

うーん、
/var/lib/dpkg/infoのキャッシュファイルを削除するという方法も試した方がよさそう。
--------------------------------------------------------------
~$ sudo cd /var/lib/dpkg/info
~$ sudo ls | grep samba
~$ sudo rm -fr samba.postinst samba.preinst samba.postrm samba.prerm
--------------------------------------------------------------

これでもう一回"sudo apt-get upgrade"を試してみる。

結果⇒失敗。

同じく「 Process: 65399 ExecStart=/usr/sbin/winbindd $WINBINDOPTIONS (code=exited, status=1/FAILURE)」と表示され処理はストップしてしまいました。

諦めるか…

ドメインコントローラを再生成したほうが早い気がしてきて、諦めるのも視野に。
と、いうのもこのドメインには当該ドメインコントローラ以外、他にも(PCのRSAT画面)

f:id:treedown:20200525181612p:plain
二台のドメインコントローラが動作しています。残り二台は正常動作中。状態が保留中とされているDCはほどなく

f:id:treedown:20200525181627p:plain
「利用不可」と状態が検出されます。プロセスが動作していないから当然ではあるのですが、無理にこれを修復するより、他に正常動作しているDCが二台あるのだから、いったんドメインから障害のドメインコントローラを外してしまい、新たにOSインストールからsambaインストールをやり直してもいいか、と考えました。

OSは無事起動するため、まずはコマンドでDCをドメインから降格(削除)を試みます。

コマンドは「samba-tool domain demote」
--------------------------------------------------------------
~$ sudo samba-tool domain demote
ldb_init_module() in ../source4/dsdb/samdb/ldb_modules/password_hash.c version[1.1.27]: gpgme_check_version(1.8.0) not available, gpgme_check_version(NULL) => '1.5.1'
ldb: failed to initialise module /usr/lib/x86_64-linux-gnu/ldb/modules/ldb/samba/password_hash.so : Unavailable
ldb: failed to initialise module /usr/lib/x86_64-linux-gnu/ldb/modules/ldb/samba : Unavailable
ERROR(<type 'exceptions.MemoryError'>): uncaught exception -
File "/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py", line 176, in _run
return self.run(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/samba/netcmd/domain.py", line 727, in run
samdb = SamDB(url=H, session_info=system_session(), credentials=creds, lp=lp)
~$
--------------------------------------------------------------

エラー…。正常にsmbdプロセスやwinbindプロセスが動作していないから(だと思う)だけど、当然ながらドメインコントローラの降格処理には失敗してしまいます。

ドメイン上でメタデータの削除を実施して、DNSの関連レコードを削除し、OSの再インストールから実行する、と言う手もあるが…、どうしようか迷うところです。