Linux流石にお金払ってProにしたのに記事を書かないのもアレなので、まずは一本目。いうかolcってなんだよ数年ぶりにOpenLDAPを触ってみたところ、slapd.confによる設定がオワコンになっていた。代わりになにやらolcというのを使う必要があるらしい。これはなんだと調べてみると、どうやらOpenLDAPサーバの設定値をOpenLDAPサーバ自体で保持する仕組みらしい。effect.という感じでOpenLDAPの設定をLDAP操作で、LDIF形式で、さらに設定変更の反映をサーバの再起動無しで行えるとのこと。MySQLのVARIABLESみたいなものか。Configurationの略で動的コンフィグで使用されるobjectClassやattributeのprefixの値らしい。実際の設定方法は?さて、olcというか動的コンフィグが何かはわかったのでその設定方法だ。いうディレクトリが存在する。思ったらldap.confだった。slapd.dを覗いて見ると、何やらよくわからない命名規則のディレクトリとファイルが並んでいる。ファイルの中身を見てみると、たしかにLDIFファイルだ。このファイルを編集して初期設定を行うのかと思ったらどうやらそうではないらしい。ldapmodify(1).で、多くの日本語の解説ページは「エラーは出ますけど直接編集します」とか書いてあったりするので、このあたりもうちょい調べてみた。databaseを作成できるとのこと。試しにolcSuffixとolcRootDNの値を変更してみる。eq,pres,sub更新したLDIFファイルはslapaddコマンドで、slapd.dディレクトリ配下に書き出しできる。上書きはできないらしく、予めslapd.dの中を消さないとだめっぽい。slapaddで書き出しを行う際にはslapd、つまりOpenLDAPのプロセスは停止しておいたほうが良いとのこと。(初期設定のタイミングのみ。オプションで書き出し先のディレクトリを指定する。LDAPデータベースの設定順序とかそのあたりの理解が必要なので、また別のエントリで。上記コマンドで生成されたファイルから、変更箇所のdiffを抜き出しものがこちら。20190822135234ZCRCやUUID、タイムスタンプが更新されて、その差分が出ているため少し見にくいが、想定通りolcSuffixとolcRootDNが指定した値に書き換わっている。slapd.confからの移行はどうしたらええの?ちなみに、slapd.confでの設定も実はできたりする。chapter.とのことで2.4ではまだサポートするけど、Deprecatedだし将来的には廃止するよとのこと。オプションでslapd.confを指定することで使えるようだが、いつ使用できなくなるかわからないものを使い続けるのも心臓に悪い。slapd.confの内容を元に、slapd.ldifを書き直すのが無難だろう。prefixとして付与してやることで、ほとんどの設定はそのまま移行が可能。olcSuffix,rootdn->olcRootDN`)更にもっと簡単な方法として、slapd.confを元にslapd.dディレクトリに書き出す方法がある。slapd.confを渡してやればOK。現在の設定を元にLDIFファイルを出力してくれる。結局、動的コンフィグは嬉しいのかconfファイルを廃してLDIFの文法一本に絞れること、ldapmodifyなどの統一されたツールで操作が行えること、特に再起動不要で設定が反映できることなんかは良いと思う。OpenLDAPは歴史が長く、slapd.conf時代の解説ページが多いので少し戸惑うかもしれないが、次のバージョンでslapd.confのサポートが完全に切られたりしても大丈夫なように備えておきましょう。読者になるスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。