Trusted Postgres Architect 23.42.0 release notes

Trusted Postgres Architect 23.42.0 release notes#

リリース日2026年2月25日

Trusted Postgres Architect 23.42.0の新機能、機能強化、バグ修正、およびその他の変更には次のものが含まれます。

ハイライト#

  • RHEL 10の実験的サポート EDBパッケージが利用可能になるまで、オープンソースクラスターのみ

  • Postgresログ設定の制御の向上

  • より幅広いユーザー環境に対応するための新しいprivilege_escalation_command オプション

機能強化#

Description

Addresses

ログの宛先とログディレクトリの処理を改善および文書化しました。デフォルトでは、TPAは`syslog`にログを記録するようにPostgresを構成します。 `rsyslog`のログの場所は、 `postgres_log_file`で設定できます。ユーザーが`syslog`以外の宛先を選択した場合、TPAはPostgresロギングコレクターが`postgres_log_file`にログを記録するように構成します。以前は、この動作はユーザーが`stderr`を選択した場合にのみ実装されていました。 `jsonlog`や`csvlog`など、syslog以外の設定でも動作するようになりました。この変更により、ディレクトリ権限の設定に使用できる新しいクラスター変数`postgres_log_directory_mode`が追加されます。また、すべてのロギング関連のクラスター変数に関する新しいドキュメントを追加します。 Logrotateは、ログが収集される方法に関係なく、ログファイルをターゲットとするように構成されます。

50711

RHEL 10でのTPAの実行をサポート。TPAコントローラは、RHEL 10または同等のOS Rocky Linux、AlmaLinux、またはOracle Linux 10を実行しているシステムになりました。これらのシステムでは、システムPythonパッケージPython 3.12を使用できます。

RHEL 10ノードへの展開の実験的なサポート。TPAは、RHEL 10またはRHEL 10ベースのディストリビューションRocky Linux、AlmaLinux、またはOracle Linuxを実行しているノードに展開できるようになりました。 dockerまたはawsプラットフォームを使用している場合、適切なdockerイメージまたはec2 AMIが選択されます。この機能は実験的と考えられています。展開はRHEL 10のさまざまなパッケージの可用性に依存しているため、パッケージが上流リポジトリにアップロードされるまで、すべてのアーキテクチャまたはソフトウェアオプションが動作するとは限りません。

代替の特権エスカレーションコマンド用の`privilege_escalation_command`構成変数を追加しました。このリリースでは、新しい cluster_vars変数 `privilege_escalation_command`が導入され、ユーザーは管理対象アプリケーションが実行時にクラスター操作に使用する特権エスカレーションコマンドを構成できます。デフォルト値は`sudo`で、これは、TPAがsudoパッケージが存在しない場合は自動的にインストールし、さまざまなコンポーネントPostgresユーザー、EFMユーザー、フェールオーバーマネージャーのsudoersファイルを構成する現在の動作を維持します。ユーザーは`privilege_escalation_command`を設定することにより、代替の特権エスカレーションコマンドを指定できるようになりました。代替の特権エスカレーションコマンド `sudo`以外の場合、TPAは次のことを行います。 sudoパッケージのインストールをスキップする Postgresユーザーのsudoers構成をスキップする EFMユーザーのsudoers構成をスキップする すべてのフェールオーバーマネージャー操作repmgr、 HARP、EFMにconfiguredコマンドを使用する)この機能は、次のような環境に役立ちます。代替の特権エスカレーションコマンドを使用する sudo構成の手動管理が必要 特権エスカレーションコマンドに関する厳密なポリシーがある 重要 代替の特権エスカレーションコマンドを使用する場合、ユーザーは以下を確認する必要があります。選択したコマンドがプリインストールされ、構成されているすべてのターゲットシステム このコマンドにより、postgresユーザーはサービス管理のためのsystemctlコマンドを実行できます このコマンドにより、EFMユーザーは`efm_db_functions`を実行できますEFMを使用する場合 Ansibleのmakeメカニズムが適切に構成されている`ansible_become_method`経由 コンポーネント固有の変更 Postgresユーザーsudoers代替コマンドを使用して、TPAはsudoersの構成をスキップしますe postgresシステムユーザー。ユーザーはサービス管理コマンドの特権エスカレーションを構成する必要があります。 EFM sudoers 代替コマンドを使用する場合、TPAはEFMユーザーのsudoersの構成をスキップします。ユーザーは特権エスカレーションを構成して、EFMユーザーがpostgresユーザーとして`efm_db_functions`を実行できるようにする必要があります。フェールオーバーマネージャーrepmgrとEFMは、ハードコーディングsudoの代わりに、サービス管理コマンドに設定済みの特権エスカレーションコマンドを使用するようになりました。 Barman SELinux Barman SELinux構成タスクは、構成された特権エスカレーションコマンドを尊重して、明示的なsudoコマンドの代わりにAnsibleのbecomeメカニズムを使用するようになりました。詳細な使用例と構成ガイドラインについては、 ansible-and-sudo.mdおよびconfigure-cluster.mdのドキュメントを参照してください。

download-packages`コマンドに「refresh repository metadata」オプションが追加されました。新しいオプションが`tpaexec download-packages`コマンド--refresh-repository`、動作するにはDockerとそれに対応するDockerイメージが必要です。この変更を行う前は、クラスターとOSに応じて、ローカルリポジトリを手動で再作成するために必要なコマンドをユーザーに依存していました。この修正では、パッケージが配置され、構成ファイルで上記パッケージの新しいバージョンが選択されると、 `tpaexec upgrade`を使用してリポジトリをアップグレードする自動方法を提供します。また、さまざまなエアギャップ条件を考慮して実行する必要がある手順をカバーするドキュメント、およびエアギャップシナリオのDNFリポジトリに関連して発見されたマイナー修正も含まれています。

52313

の変更#

Description

Addresses

複数のEFMバージョンの同時インストールを防止します。TPAは、複数のEFMバージョンのインストールを防止し、サービススタートアップの競合を解決します。バージョンチェックは`upgrade_in_progress`状態を正しく検出するようになり、`tpaexec upgrade --components=efm`は既存のバージョンを置き換えることができ、通常の展開操作中に誤ってマルチバージョンのインストールをブロックし続けます。

48997

TPAは、PGD 6クラスターでサポートされていないPostgres 13を拒否するようになりました。 Postgres 13とPGD 6を組み合わせた構成を明示的に拒否するように`tpaexec configure`を更新しました。 Postgres 13はPGD 6でサポートされていないため、このチェックは、ユーザーが後で失敗する互換性のないセットアップを続行することを防ぎます。導入フェーズ。

デフォルト“enterprise” PGD-Sアーキテクチャのリポジトリ。 PGD-Sアーキテクチャを使用するように構成されたクラスターは、デフォルトで“enterprise”になります。 "postgres_distributed"ではないリポジトリリポジトリ。したがって、デフォルトのリポジトリが必要なサブスクリプションレベルと一致するようになりました。

ローカルのみの展開の必須EDBトークンチェックを削除しました。 `--use-local-repo-only`オプションが有効になっている場合でも、`tpaexec deploy`が誤ってEDB_SUBSCRIPTION_TOKENを必要とする問題を解決しました。必要なパッケージがすべてローカルに利用できる場合、TPAはローカルリポジトリから展開するときにこの検証をバイパスするようになりました。最初にパッケージをダウンロードし、ローカルリポジトリにデータを入力するには、引き続きトークンが必要であることに注意してください。

未使用のモニタリングサーバーロールを削除しました。モニタリングサーバーロールは、以前にクラスターの集中監視サーバーをセットアップするために使用されていましたが、この機能は使用またはサポートされません。この変更により、コードベースからモニタリングサーバーロールへのすべての参照が削除されます。roles/initでのグループ作成からモニタリングサーバーロールの削除モニタリング_server変数を設定するタスクの削除 テストフィクスチャからモニタリングサーバーの削除 このクリーンアップでは、デッドコードを削除し、TPA展開でサポートされているロールに関する混乱を防ぎます。

RH8用の個別の要件ファイル.TPAは、RH8で実行されているかどうかに応じて、Pythonパッケージのインストール時に個別の要件ファイルを使用するようになりました。さらに、クラスター内のインスタンスがRH8を実行している場合、使用中のansibleバージョンが2.16以降であることを展開時にチェックします。これにより、TPAは他のディストリビューションでansible-coreの最新バージョンを使用しながら、RH8への展開を引き続きサポートできます。

パッチへの文書化された依存関係を削除しました。TPAはパッチユーティリティを必要としないため、インストール手順からそれに関する記載を削除し、それを呼び出した到達不能コードを削除しました。

バグ修正#

Description

Addresses

mTLSを使用するクラスターのアップグレードの失敗を修正しました。mTLSが有効になっているクラスターで`tpaexec upgrade`が失敗する問題を解決しました。以前は、アップグレードフェーズ中に必要なTLS変数が欠落していたため、「certificate require」というメッセージが発生していました。 etcdのエラーとPatroniの未定義変数エラー。この修正により、アップグレード中にすべてのmTLS構成が正しく伝播され、安全な接続が維持されます。

Barmanの依存関係として'file'を削除しました。 Barmanはパッケージの依存関係として「file」を必要とするため、パッケージマネージャーによってインストールされます。別の依存関係として追跡する必要はありません。

PGD-X構成で`bdr_node_groups`が重複する問題を修正しました。 PGD-Xクラスターの`tpaexec configure`中に接続マネージャーポートオプションを指定すると、`config.yml`に`bdr_node_groups`エントリが重複してしまう問題を解決しました。構成ロジックはこれらのオプションを正しく処理し、クリーンで有効なクラスター定義を保証します。

PGDGリポジトリを正しく処理するように`tpaexec configure`コマンドの`--edb-repositories`を修正しました。このバージョンのTPAよりも前では、tpaexec configure`で--edb-repositories`オプションを使用すると、`(apt,yum,suse)_repository_list`変数を定義するコードが誤ってスキップされていました。これにより、EDBとPGDGリポジトリの両方が定義された誤った構成が生成され、パッケージ解決の競合が発生しました。あらゆる状況で正しい構成が生成されるように、修正が導入されました。

TPAは、`max_replication_slots`計算でパラレル適用を考慮するようになりました。 PGD 5パラレル適用をサポートするように`max_replication_slots`の式を更新しました。 Parallel applyではライタごとに追加のレプリケーションオリジンが必要であるため、TPAは`bdr.writers_per_subscription`設定を自動計算に組み込み、PGD 5クラスターでのスロットの枯渇を防ぎます。重要 この変更は、TPAが更新された計算結果を適用するため、PGDバージョン5以降を使用する場合、次回の展開でpostgresクラスターが再起動します。ダウンタイムを回避するには、 `cluster_vars`の`max_replication_slots`および`max_wal_senders`の現在値を確認および定義します。

51548, 57005

TPAは、 ansible_userがrootでない場合のテストの実行をサポートするようになりました。 tpaexec tasks SSL証明書を読み取ることができるように、ルートまたは正しいユーザーとして実行する必要があるデータベースクエリーを実行します。これらのテストは、以前はユーザーを指定せずに実行されたため、ユーザーがrootでない場合に失敗しました。これらは`become_user`で実行されるようになりました。属性を作成し、ノードタイプに応じてpostgresまたはpgd_proxyユーザーとして実行します。

96876

TPAでは、`--hostnames-from`を使用してDockerインスタンスのIPアドレスを設定できるようになりました。TPAの以前のバージョンは、ホスト名ファイルで指定された場合でも、`ip_address`を自動的に生成しました。この修正は、TPAが構成時にIPアドレスがまだ指定されていない場合にのみ生成することを意味します。 TPAは、提供されたIPアドレスを含むクラスターネットワークを自動的に選択しないことに注意してください。そのため、 `--network`オプションを使用して、一致するCIDRを指定する必要があります。

アップグレードおよびテストフェーズ中の未定義のPatroni SSLファクトに関する問題を修正しました。展開中に設定されたSSL関連のファクトは、プレイブックの実行にわたって持続されず、SSLが有効になっているPatroniクラスターに対して`upgrade`または`test`を実行すると、`'patroni_ssl_ca_file' is undefined`などのエラーが発生しました。これらのファクトは、アップグレードプレイブックとテストタスクの関連ポイントに含まれる専用の`patroni/facts`ロールによって設定され、どのフェーズが実行されているかに関係なく、常に利用できるようになります。

DCS解析エラーを防ぐためにPatroni `ignore_slots`データ構造を修正しました。以前は、 `ignore_slots`パラメーターは、必要なリスト形式の代わりに辞書として生成されました。これにより、DCS解析中にAttributeErrorが発生し、`ignore_slots`構成が有効になることを妨げるだけでなく、後続の動的および静的構成の更新の適用もブロックされました。この変更により、`ignore_slots`が辞書のリストとして正しくフォーマットされ、解析エラーが解決され、すべての構成変更が正常に適用されます。

TPAは、インスタンスのロールリストに空のエントリが含まれていないことを検証するようになりました。`config.yml`でインスタンスのロールリストを手動で編集するときに空のエントリを追加するか、ダッシュを削除するのを忘れると、デプロイメントが失敗するというバグを修正します。インスタンスロールリストの空のエントリは無効であるため、展開プロセスの早い段階でキャッチする必要があります。これにより、展開中にできるだけ早く各ノードのロールリストの内容を検証するタスクが追加されます。

46041

tpaexec configure`のPGD-Xの欠落していた--enable-camo`オプションを追加しました。 tpaexec configure`内のPGD-Xアーキテクチャの--enable-camo`フラグを導入しました。この更新では、自動互換性チェックや展開の成功に必要な構成調整を含む、クラスターのCommit At Most OnceCAMOが有効になります。

欠落しているetcdロールをキャッチするための検証を追加しました。`harp_consensus_protocol: etcd`を使用してHARPを使用してBDR 4クラスターを展開する場合、etcdロールが定義されたインスタンスがない場合、展開は遅れて失敗し、欠落しているetcdエンドポイントに関する不明瞭なエラーが発生しました。このような問題のデバッグは費用がかかりますが、この検証は問題を早期にキャッチし、何がうまくいかなかったのかについてユーザーにいくつかの手がかりを提供するようになりました。

46041

TPAは現在、`PEMサーバーの資格情報の記録`をバイパスするようになりました。共有PEM展開中のタスク。以前は、共有PEMサーバーを展開するときに、タスク「PEMサーバーの資格情報を記録する」 'postgres_password'属性が必要なため失敗します。この属性は、 'postgres'ロールを持つノードが共有PEMノードとともに展開される場合にのみ定義されます。これにより、 'postgres'ロールが存在しない共有PEMを使用して独立したBarmanノードを展開するなど、特定のシナリオで障害が発生し、属性欠落エラーが発生しました。 'postgres_password'は代わりに後続のステップで'EDB_PEM_CREDENTIALS_FILE'から派生するため、共有PEMが使用されている場合、修正はこのタスクをスキップします。

BDRクラスターの`barman_role`特権付与を修正しました。 BDRクラスターでは、 Barmanが必要な特権が、 Barmanが実際に接続する`postgres`データベースではなくBDRデータベースに誤って付与されました。これにより、「バックアップ機能へのアクセスがありません。FAILED」が発生しました。 TPA 23.40にアップグレードした後のエラー。この修正を展開した後、付与は`postgres`データベースに正しく適用されます。影響を受ける既存のクラスターは、`tpaexec deploy`を再実行することにより修正できます。

54698

`bdr_package_version`のみが設定されている場合に、pgd-proxyおよびpgdcliパッケージバージョンが`bdr_package_version`と一致するようにダウンローダーを修正しました。エアギャップ環境で'bdr_package_version'を選択すると、 BDRの選択したバージョンがダウンロードされますが、 PGD CLIおよびPGDプロキシのバージョンはダウンロードされません。パッケージの不一致があるため、'tpaexecdeploy'のエラー。これは、非エアギャップ環境の場合ではなく、'bdr_package_version'の特定のバージョンを選択すると、PGD CLIおよびPGDプロキシの対応するバージョンも選択されます。この修正により、'tpaexec download-packages'を実行するときに、最初に'pgd_proxy_package_version'または'pgdcli_package_version'が定義されているかどうかを確認し、定義されていない場合は、 BDRパッケージが不一致であるため、'bdr_package_version'変数を再利用して指定された同じバージョンをダウンロードします運用環境で重大な問題を引き起こす可能性があります。

tpaexec configure`のPGD-Xポートフラグを標準化しました。`tpaexec configure`を更新して、PGD-Xの有効なオプションとして--proxy-listen-port`および`--proxy-read-only-port`を削除しました。ドキュメントが調整されて、これらの削除を反映し、サポートされている`--read-write-port`および`--read-only-port`フラグのカバレッジを追加して、CLIとマニュアル間の調整を保証します。

57408

TPAは、スロットのデフォルト計算でPEMサーバーインスタンスを無視するようになりました。PEMサーバーバックエンド専用のインスタンスを無視するように`num_postgres_instances`のロジックを変更しました。この変数は`max_replication_slots`のデフォルト値を決定するため、PEMノードを除外することで過剰割り当てを防止します。重要 TPAは更新された計算結果を適用するため、`config.yml`で`max_replication_slots`が明示的に定義されていない場合、PEMサーバーを使用したクラスターへの展開は、次回の展開時に再起動がトリガーされます。ダウンタイムを回避するには、 `cluster_vars`の現在の値を確認および定義します。

外部変数ファイルでtpaexec applyを実行したときに発生したクラッシュを修正しました。外部変数ファイル`tpaexec deploy --extra-vars "@./vars.yml"`などでtpaexecdeployを実行したときに発生したクラッシュを修正しました。以前は、deployコマンドによってトリガーされる内部プロビジョニングステップがこれらの追加変数を継承せず、実行が失敗していました。この修正により、展開が開始される前に、指定されたすべての変数がtpaexecプロビジョニングに正しく渡されるようになります。

56864

コミットスコープが選択されたときにPGD-Xの展開が失敗する問題を修正しました。デフォルトでPGD-Xは、一連の不変のコミットスコープを作成します。この変更により、TPAは、構成ファイルCAMOなどで以前に定義されていないコミットスコープを追加するときに、PGD-Xのこれらのコミットスコープを削除しようとします。

PatroniクラスターでのRHEL 8の展開の失敗を修正しました。Python 3.6以降の互換性のために`patroni_compare_config.py`スクリプトを更新することにより、RHEL 8での展開の失敗を解決しました。この修正により、スクリプトのコアロジックを維持しながら、Patroni構成の検証が最新のPython環境で正しく実行されることが保証されます。

Patroniのアップグレード中にetcd_protocolのKeyErrorを修正しました。これは、最初のetcdノードがpyformat_hostvarsを使用してすべてのetcdノードのエンドポイントをビルドしようとしたときの競合状態です。各ホストのhostvarsでetcd_protocolを探しました。ただし、現在のホストのみがインストール中にこのファクトを設定していましたアップグレード。これにより、他のホストにアクセスするときにKeyErrorが発生しました。

'etcd_authentication_mode'の'basic'認証に関する問題を修正しました。 'etcd_authentication_mode'で'basic'認証を選択すると、呼び出しを担当するetcdの'patroni'ロールに権限を付与するタスクで展開の実行が失敗します。 etcdクラスターに。これは、ファクト変数がタスクのスコープで適切に定義されていないため、タスクの条件が失敗し、したがって権限が付与されないためでした。修正には、ファクト変数が正しく設定されてアクセスできることを確認し、'basic'認証が選択されたときに権限付与タスクが意図したとおりに実行できるようにすることが含まれます。

RHELベースのシステムでのPGDアップグレード中のパッケージの競合を修正しました。RHELベースのオペレーティングシステムでPGD 5からPGD 6にアップグレードするときに発生した依存関係解決depsolveの問題を解決しました。アップグレードプロセスは条件付きで`allowerasing`オプションを利用するようになりました。これにより、アップグレードの前の予行チェック中に競合するPGD 5パッケージの必要な置換が許可され、PGD 6への正常な移行が保証されます。

バージョン固定を使用する際のBarman展開の失敗を修正しました。`barman_package_version`を介してBarmanバージョンを固定するときに発生したDebian / Ubuntuシステムでの依存関係の競合を解決しました。 TPAは、 `barman-cli`とその`python3-barman`依存関係の両方を同じバージョンに正しく固定するようになり、パッケージマネージャーがバージョン要件の不一致を理由にインストールを拒否するのを防ぎます。