
CentOS 7 ノードに FreeIPA サーバーをインストールしようとしています。クリーンなイメージから始めて、次のコードを実行しています (関係のない部分は含まれていません)。
echo 'LANG=en_US.utf-8' >> /etc/environment
echo 'LC_ALL=en_US.utf-8' >> /etc/environment
yum -y install epel-release npm wget net-tools patch sbt python36u python36u-devel krb5-devel
yum -y install python36u-pip
yum install -y ipa-server
systemctl start named
systemctl enable named
ln -s /bin/pip3.6 /bin/pip
pip install --upgrade pip
pip install kdcproxy ipaplatform gssapi ipalib
ipa-server-install -p directoryManagerAdmin -a kerberosAdmin --ip-address=$ipaddress -n test.hadoop.com -r TEST.HADOOP.COM --mkhomedir -U
ipa-server-install は、Web API の使用を開始する部分までは正常に動作します。この時点で、内部サーバー エラーのため失敗します。/var/log/httpd/error_log のログを確認すると、次のエラーが複数回複製されていることがわかりました。
[Thu Jul 25 19:26:30.952879 2019] [wsgi:error] [pid 2934] mod_wsgi (pid=2934): Failed to exec Python script file '/usr/share/ipa/wsgi.py'.
[Thu Jul 25 19:26:30.952929 2019] [wsgi:error] [pid 2934] mod_wsgi (pid=2934): Exception occurred processing WSGI script '/usr/share/ipa/wsgi.py'.
[Thu Jul 25 19:26:30.953372 2019] [wsgi:error] [pid 2934] Traceback (most recent call last):
[Thu Jul 25 19:26:30.953402 2019] [wsgi:error] [pid 2934] File "/usr/share/ipa/wsgi.py", line 48, in <module>
[Thu Jul 25 19:26:30.953406 2019] [wsgi:error] [pid 2934] api.bootstrap(context='server', confdir=paths.ETC_IPA, log=None)
[Thu Jul 25 19:26:30.953414 2019] [wsgi:error] [pid 2934] File "/lib/python3.6/site-packages/ipalib/plugable.py", line 494, in bootstrap
[Thu Jul 25 19:26:30.953417 2019] [wsgi:error] [pid 2934] raise errors.SystemEncodingError(encoding=fse)
[Thu Jul 25 19:26:30.953432 2019] [wsgi:error] [pid 2934] ipalib.errors.SystemEncodingError: System encoding must be UTF-8, 'ascii' is not supported. Set LC_ALL="C.UTF-8", or LC_ALL="" and LC_CTYPE="C.UTF-8".
LC_ALL と LANG (スクリプトに記載されているとおり) を設定してみましたが、それでもエラーが発生します。サーバーの Web API が適切に動作するようにこれを修正するには、何をする必要がありますか?
編集: @abbra @michael-hampton からの提案に従って、Python の問題に対する修正を元に戻しました。私が実行している新しいコマンドのセットと、httpd/error_log に表示されるエラーの 1 つについては、以下を参照してください。他のパッケージも欠落しているのがわかりますが、すべて類似していることに注意してください。
yum -y install epel-release npm wget net-tools patch sbt krb5-devel
yum install -y ipa-server
systemctl start named
systemctl enable named
/var/log/httpd/error_log の出力:
[Fri Jul 26 14:20:03.334411 2019] [wsgi:error] [pid 2894] mod_wsgi (pid=2894): Failed to exec Python script file '/usr/share/ipa/wsgi.py'.
[Fri Jul 26 14:20:03.334456 2019] [wsgi:error] [pid 2894] mod_wsgi (pid=2894): Exception occurred processing WSGI script '/usr/share/ipa/wsgi.py'.
[Fri Jul 26 14:20:03.334675 2019] [wsgi:error] [pid 2894] Traceback (most recent call last):
[Fri Jul 26 14:20:03.334697 2019] [wsgi:error] [pid 2894] File "/usr/share/ipa/wsgi.py", line 43, in <module>
[Fri Jul 26 14:20:03.334701 2019] [wsgi:error] [pid 2894] from ipaplatform.paths import paths
[Fri Jul 26 14:20:03.334716 2019] [wsgi:error] [pid 2894] ModuleNotFoundError: No module named 'ipaplatform'
答え1
おそらく、IUS リポジトリが有効になっているのでしょう。これらは、標準の CentOS ビルドをオーバーライドして拡張するパッケージを提供します。その結果、(この特定のケースでは) システムが IPA サーバー パッケージの要件と互換性がなくなります。python36u-mod_wsgi を削除すると、元のリポジトリ (python2 ベース) が選択されます。
誰もテストしていないため、この構成 (CentOS + IUS パッケージ) が FreeIPA で動作することを保証するものではありません。