0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Fedoraをバージョンアップしたらrundeckが起動しなくなった

Posted at

はじめに

Fedoraを38で使っていたのですが、先日40がリリースされました。それではとインプレースアップグレードしたところrundeckが起動しなくなりました。

systemctl start rundeckdで一旦起動するのですが、その後しばらくすると落ちてしまいます。journalを出しても単にrundeckが落ちたことを示すメッセージがあるだけで、なぜ落ちたのかまでは解りませんでした。
結果的にはpostgresqlの設定が初期化されていたことが原因でした。バージョンアップでも設定は引き継がれるだろうという思いがあり、なかなか気づけませんでした。

環境

Fedora 40(38からバージョンアップ)
rundeck 5.3.0
postgresql 16.1

症状

systemctl start rundeckd
直後のステータスはグリーンなのですが、しばらくすると落ちてます。journalctlでは落ちたという事象は記録されるのですが、詳細が解りません。ただ、/var/log/rundec/service.logにはそれなりに大量のスタックトレースが出ていました。

[2024-05-23T13:33:24,078] ERROR pool.HikariPool - HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: FATAL: ユーザー"rundeck"のIdent認証に失敗しました
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:698) ~[postgresql-42.7.2.jar!/:42.7.2]
        at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:207) ~[postgresql-42.7.2.jar!/:42.7.2]
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:262) ~[postgresql-42.7.2.jar!/:42.7.2]
           :
           :

検討

ユーザー"rundeck"のIdent認証に失敗しました

「Ident認証」というのが見慣れなかったのですが「Identify認証」のような意味で、ユーザ認証が通らないということなのだろうと推測しました。ユーザIDで'rundeck'を使っているのばOSとPostgresqlです。
まさかと思いOSアカウントのrundeckを確認したところ(もちろん)健在でした。
ログにはPSQLExceptionとあるので、rundeckからposgresql内のDBアクセスに問題が出ているのだろうと見当を付け、一応postgresqlの管理アカウントでpostgresql内のDBやアカウントの状態を確認し、postgresqlのバージョンアップ後処理で(もちろん)スキーマが落とされたりもしていないことを確かめました。
残るは単純にクライアントからのログオン処理になります。そういえば、以前何かあった(が、何であったのかは忘れている)なと、ログイン設定がされているpg_hba.confを確認しました。
pgsql/data/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

それっぽい設定ですが、以前はどうだったのか覚えていません。幸いなことに、旧設定はdata-oldに残されていました。
pgsql/data-old/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     md5
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

そういえば、と遅まきながら思い出しました。以前rundeckをバージョンアップしたときにmd5にする設定としていたのでした。

対応

pg_hba.conf内のMETHODをmd5に変更した後、postgresqlのサービスを再起動して、rundeckを起動すると、今度は無事に起動して、以前に定義したジョブや実行結果も再びみられるようになりました。

おわりに

Fedoraアップグレードの中でposgresqlもバージョンアップされていたわけですが、その中で設定ファイルが初期化されていたのは気づきませんでした。
postgresqlのバージョンアップについてはデータファイルの設定変更や作成しているDBの照合順序バージョンの変更など、他にも後処理があったのですが、rundeckのトピックとは異なりますのでそちらは省略いたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?