What's?
CentOS 8から、OpenLDAPが標準で入らなくなったと聞いて。
代わりに使う389 Directory Serverあたりも含めて、少し調べてみようかなと。
RHEL 7.4で非推奨になったOpenLDAPサーバー
Red Hat Enterprise Linux 7.4のRelease Notesの中で、OpenLDAPサーバーが非推奨になったと書かれています。
Identity Management に関連する非推奨機能
以下の機能は将来削除されるか、または他のコンポーネントに置き換えられる予定です。
OpenLDAP サーバー
実際、RHEL 8、そしてCentOS 8には含まれなくなったようです。
で、LDAPを使いたかったらなにを使うべきか?という話へ。
What is the support status of the LDAP servers shipped with Red Hat Enterprise Linux?
389-dsというものがあるらしいです。
The 389-ds packages provide the core directory services components for Identity Management (IdM) in Red Hat Enterprise Linux and the Red Hat Directory Server (RHDS). The package is not supported as a stand-alone solution to provide LDAP services.
Red Hat Directory Serverの一部として提供されるようですが、スタンドアロンでは提供されません、と。
ところで、どうしてOpenLDAPサーバーが含まれなくなったのかは、以下に理由が書かれています。
Starting with Red Hat Enterprise Linux 7.4, the openldap-servers package has been deprecated and will not be included in a future major release of Red Hat Enterprise Linux. There is a variety of open source tools and solutions that provide directory services. With the raise of the adoption of the Identity Management in Red Hat Enterprise Linux (IdM) solution and decline in use of the OpenLDAP server for the enterprise use cases Red Hat made a decision to focus on the technologies that Red Hat historically had deep understanding, expertise and been investing into for more than a decade.
ここが知りたかったのですが、OpenLDAPの使用が減少し、RHELでのIdMの採用が増えていることからRed Hatが深く理解しているテクノロジーにフォーカスすることを決定した、と。
IdMとは、以下のドキュメントに載っているもののようですね。
あと、Red Hat Directory Server自体も記載がありましたね。
で。CentOSではどうしましょうかというところで。
389 Directory Serverを使うことになるようです。
CentOS 7,8でのOpenLDAPサーバーの状況を見てみる
まずは、現状確認をしてみましょう。
CentOS 7
CentOS 7.8の場合。
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
openldap
でリポジトリを検索してみます。
$ yum search openldap
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
=========================================================================== N/S matched: openldap ============================================================================
compat-openldap.i686 : OpenLDAP compatibility shared libraries
compat-openldap.x86_64 : OpenLDAP compatibility shared libraries
openldap-servers-sql.x86_64 : SQL support module for OpenLDAP server
openldap.i686 : LDAP support libraries
openldap.x86_64 : LDAP support libraries
openldap-clients.x86_64 : LDAP client utilities
openldap-devel.i686 : LDAP development libraries and header files
openldap-devel.x86_64 : LDAP development libraries and header files
openldap-servers.x86_64 : LDAP server
perl-Mozilla-LDAP.x86_64 : LDAP Perl module that wraps the OpenLDAP C SDK
Name and summary matches only, use "search all" for everything.
$ yum list *openldap*
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
Installed Packages
openldap.x86_64 2.4.44-21.el7_6 @anaconda
Available Packages
compat-openldap.i686 1:2.3.43-5.el7 base
compat-openldap.x86_64 1:2.3.43-5.el7 base
openldap.i686 2.4.44-21.el7_6 base
openldap-clients.x86_64 2.4.44-21.el7_6 base
openldap-devel.i686 2.4.44-21.el7_6 base
openldap-devel.x86_64 2.4.44-21.el7_6 base
openldap-servers.x86_64 2.4.44-21.el7_6 base
openldap-servers-sql.x86_64 2.4.44-21.el7_6 base
まあ、見つかります、と。
CentOS 8の場合
CentOS 8.2の場合。
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
ところで、CentOS 8だとyum
コマンドはdnf
のエイリアスなんですね。
$ ll /usr/bin/yum
lrwxrwxrwx. 1 root root 5 Jul 21 18:46 /usr/bin/yum -> dnf-3
openldap
でリポジトリを検索。
$ dnf search openldap
Last metadata expiration check: 0:00:18 ago on Tue Oct 27 03:03:31 2020.
======================================================================= Name Exactly Matched: openldap =======================================================================
openldap.x86_64 : LDAP support libraries
openldap.i686 : LDAP support libraries
====================================================================== Name & Summary Matched: openldap ======================================================================
collectd-openldap.x86_64 : OpenLDAP plugin for collectd
=========================================================================== Name Matched: openldap ===========================================================================
openldap-devel.i686 : LDAP development libraries and header files
openldap-devel.x86_64 : LDAP development libraries and header files
openldap-clients.x86_64 : LDAP client utilities
========================================================================= Summary Matched: openldap ==========================================================================
perl-Mozilla-LDAP.x86_64 : LDAP Perl module that wraps the OpenLDAP C SDK
$ dnf list *openldap*
Last metadata expiration check: 0:03:06 ago on Tue Oct 27 03:03:31 2020.
Installed Packages
openldap.x86_64 2.4.46-11.el8_1 @BaseOS
Available Packages
collectd-openldap.x86_64 5.9.0-5.el8 epel
openldap.i686 2.4.46-11.el8_1 BaseOS
openldap-clients.x86_64 2.4.46-11.el8_1 BaseOS
openldap-devel.i686 2.4.46-11.el8_1 BaseOS
openldap-devel.x86_64 2.4.46-11.el8_1 BaseOS
クライアントや開発用のパッケージは見つかるのですが、openldap-servers
パッケージがなくなっています。
ちなみに、OpenLDAPサーバーは後述する389 Directory Serverを使うのですが、クライアントツールに関してはOpenLDAPのものを使うみたいですよ。
389 Directory Serverは、サーバー側のみのようなので。
389 Directory ServerをCentOS 8にインストールする
389 Directory Serverは、オープンソースのLDAPサーバーです。
サーバーのみなようなので、クライアントは別に必要です。
こちらを、CentOS 8にインストールしてみましょう。
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
あくまで、パッケージインストールのコマンド実行にとどめます。今回は、それ以上のことはやりません。
ダウンロードページに、インストール方法が書かれています。EPELを使うようですね。
Download 389 Directory Server / CentOS 8.1+ (ds 1.4.x)
dnf
を使って、モジュールを検索してみると、AppStreamとEPELのものが見つかります。
$ dnf module list 389*
Last metadata expiration check: 0:22:33 ago on Tue Oct 27 03:03:31 2020.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 389 Directory Server (base)
Extra Packages for Enterprise Linux Modular 8 - x86_64
Name Stream Profiles Summary
389-directory-server stable default [d], legacy, minimal 389 Directory Server
389-directory-server testing default [d], legacy, minimal 389 Directory Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
今回は、両方とも実行してみます。
AppStreamのものを使う
dnf list
の時点では、389 Directory Serverに関するものは見つかりません。
$ dnf list 389*
Last metadata expiration check: 0:16:49 ago on Tue Oct 27 03:10:34 2020.
Error: No matching Packages to list
モジュールのリストをもう1度見てみます。
$ dnf module list 389*
Last metadata expiration check: 0:22:33 ago on Tue Oct 27 03:03:31 2020.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 389 Directory Server (base)
Extra Packages for Enterprise Linux Modular 8 - x86_64
Name Stream Profiles Summary
389-directory-server stable default [d], legacy, minimal 389 Directory Server
389-directory-server testing default [d], legacy, minimal 389 Directory Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
これを有効にします。
389-ds 1.4 389 Directory Server (base)
モジュールで389-ds
を有効にします。
$ sudo dnf module enable 389-ds
すると、一覧に現れるようになります。
$ dnf list 389*
Last metadata expiration check: 1:20:08 ago on Tue Oct 27 03:03:31 2020.
Available Packages
389-ds-base.x86_64 1.4.2.4-10.module_el8.2.0+489+38ed056a AppStream
389-ds-base-devel.x86_64 1.4.2.4-10.module_el8.2.0+489+38ed056a AppStream
389-ds-base-legacy-tools.x86_64 1.4.2.4-10.module_el8.2.0+489+38ed056a AppStream
389-ds-base-libs.x86_64 1.4.2.4-10.module_el8.2.0+489+38ed056a AppStream
389-ds-base-snmp.x86_64 1.4.2.4-10.module_el8.2.0+489+38ed056a AppStream
モジュールとしても有効([e]
)になりました。
$ dnf module list 389*
Last metadata expiration check: 1:22:15 ago on Tue Oct 27 03:03:31 2020.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 [e] 389 Directory Server (base)
Extra Packages for Enterprise Linux Modular 8 - x86_64
Name Stream Profiles Summary
389-directory-server stable [x] default [d], legacy, minimal 389 Directory Server
389-directory-server testing [x] default [d], legacy, minimal 389 Directory Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
389-ds-base
をインストール。
$ sudo dnf install 389-ds-base
バージョン確認。
$ /usr/sbin/ns-slapd --version
389 Project
389-Directory/1.4.2.4 B2020.255.2048
今回は、こちらがインストールされたようです。
確認が終わったので削除。
$ sudo dnf remove 389-ds-base
$ sudo dnf module disable 389-ds
EPELのものを使う
EPELのものを使う場合は、こちらの手順に従います。
Download 389 Directory Server / CentOS 8.1+ (ds 1.4.x)
yum
をdnf
に読み替えるくらいですね。
$ sudo dnf module install 389-directory-server:stable/default
インストールと同時に、モジュールとしても有効になります。
$ dnf module list 389*
Last metadata expiration check: 0:36:21 ago on Tue Oct 27 03:03:31 2020.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 [x] 389 Directory Server (base)
Extra Packages for Enterprise Linux Modular 8 - x86_64
Name Stream Profiles Summary
389-directory-server stable [e] default [d] [i], legacy, minimal 389 Directory Server
389-directory-server testing default [d], legacy, minimal 389 Directory Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
バージョンを確認。
$ /usr/sbin/ns-slapd -v
389 Project
389-Directory/1.4.2.16 B2020.217.1124
こちらのものがインストールされたようです。
削除。
$ sudo dnf module remove 389-directory-server:stable/default
これだけだとモジュールとしては有効化されたままのようなので
$ dnf module list 389*
Last metadata expiration check: 0:46:15 ago on Tue Oct 27 03:03:31 2020.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 [x] 389 Directory Server (base)
Extra Packages for Enterprise Linux Modular 8 - x86_64
Name Stream Profiles Summary
389-directory-server stable [e] default [d], legacy, minimal 389 Directory Server
389-directory-server testing default [d], legacy, minimal 389 Directory Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
disable
にしておきます。
$ sudo dnf module disable 389-directory-server:stable/default
元に戻りました、と。
$ dnf module list 389*
Last metadata expiration check: 0:46:37 ago on Tue Oct 27 03:03:31 2020.
CentOS-8 - AppStream
Name Stream Profiles Summary
389-ds 1.4 [x] 389 Directory Server (base)
Extra Packages for Enterprise Linux Modular 8 - x86_64
Name Stream Profiles Summary
389-directory-server stable [x] default [d], legacy, minimal 389 Directory Server
389-directory-server testing [x] default [d], legacy, minimal 389 Directory Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
ざっくり、CentOS 8からOpenLDAPサーバーがなくなった理由や、389 Directory Serverのパッケージインストール方法を調べてみました。