Trusted Postgres Architect 23.35.0 release notes#

リリース日2024年11月25日

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

ハイライト#

  • STIG / CISコンプライアンスのためのオプション。

  • PGD軽量アーキテクチャのサポート

  • Postgisは認識される拡張機能になりました。

  • Docker configure は、静的IPアドレスを使用して名前付けネットワークを作成します。

  • ARMアーキテクチャ用のRedHat Enterprise Linux 9のサポート。

  • PostgreSQL、 EDB Postgres Extended、およびEDB Postgres Advanced Server 17のサポート。

機能強化#

Description

Addresses

STIG / CISコンプライアンスをサポート - - - TPAは、STIGおよびCISセキュリティ標準の多くの要件に準拠するように構成されたクラスターを作成するコマンドラインオプションをサポートするようになりました。これらのオプションにより、TPAは、関連する標準で定義されているようにpostgresql.conf設定を設定し、必要な拡張機能をインストールし、ファイルシステムの権限やユーザー接続制限などのシステム動作の他の側面を構成し、FIPS暗号標準などの他の要件をチェックします。 TPAは直接課すことはできません。このように生成されたクラスターは、標準に適合することはTPAによって認定されていませんが、適合するクラスターを作成する基礎作業の多くが自動化されています。

PGD軽量アーキテクチャのサポートを追加します - - - TPAは、2つの場所の3つのノードで構成されるPGD軽量アーキテクチャを生成できるようになりましたプライマリに2ノード、ディザスターリカバリーに1つ設計物理レプリケーションからの移行を簡単にするため。ユーザーは`tpaexec configure lw -a Lightweight --postgresql 15`を実行できるようになりました。

`configure`にDockerでユーザー定義のネットワークを作成してもらいます - - - プラットフォームとしてDockerが選択されている場合、configureコマンドは名前付けネットワークと静的IPアドレスをconfig.ymlに自動的に追加します。ネットワーク名はクラスター名と同じであり、アドレス範囲は--networkオプションの既存のセマンティクスに従いますが、場所ごとに1つではなくクラスター全体で1つのサブネットのみが使用されることを除きます。ユーザーがサブネットプレフィックスを指定しない場合、TPAはプレフィックスを選択しようとします。その結果、クラスター全体に適合する十分な大きさのサブネットが得られます。 config.ymlで名前付けネットワークが指定されている限り、キー `ip_address`を使用してDockerインスタンスの静的IPを指定できるようになりました。

新しいクラスターのバックアップノードとして既存のBarmanノードを使用するための実験的サポートを追加しました - - - 新しいクラスターでバックアップノードとして既存のBarmanノードを使用する場合、ユーザーはで`barman_shared: true`を設定できますプラットフォームが`bare`に設定されたBarmanインスタンスのvarsと、ベアインスタンスに通常どおり提供されるその他の情報。 Barmanユーザーは既に以前の展開からプロセスを実行しているため、この変更により、TPAはusermodの問題が原因で失敗するいくつかの構成手順をスキップできます。共有Barmanインスタンスはベアインスタンスとして扱われるため、ターゲットPostgreSQLインスタンスへのBarmanユーザーのアクセスを含む必要なアクセスが既に設定されている必要があります。 Barmanユーザーのキーを元のクラスターから新しいクラスターにコピーすることは、これを実現するために使用できます。詳細については、TPAドキュメントのBarmanセクションを参照してください。

認識される拡張機能のリストに`postgis`を追加します - - - ユーザーが`postgres_extensions`または`postgres_databases`の下で名前付けられた拡張機能のリストのエントリとして`postgis`を指定すると、PostGISパッケージが自動的に追加されます。また、RHEL互換ディストリビューションのCRB Code Ready Builderリポジトリを有効にして、PostGIS依存関係をインストールできるようにします。

PEMエージェントがEFMノードに登録されているときにEFMプローブを有効にする - - - --efm-install-path`および--efm-cluster-name`フラグは、PEMサーバーがEFMノードに登録されるときに設定されます。 Streaming Replication、Failover Manager Node Status、および`Failover Manager Cluster Info`プローブは、PEMエージェントがEFMノードに登録されているときに有効になります。

ARMアーキテクチャ用のRedHat Enterprise Linux 9のサポート - - - パッケージはRHEL 9 ARM64をターゲットとして公開され、TPAはこのアーキテクチャとOSを使用した展開をサポートしています。また、サポートされるAWSイメージのリストを更新して、Amazonが提供するRedHat 9 ARM64 AMIを含めます。 ARM64 EC2インスタンスのデフォルトの`instance_type`が`a1`から`t4g`に更新されました。これは、バースト可能な汎用ワークロードで使用可能な現行世代のプロセッサです。

PostgreSQL、 EDB Postgres Extended、およびEDB Postgres Advanced Server 17のサポート - - - クラスターは、 PostgreSQL、 EDB Postgres Extended、およびEDB Postgres Advanced Serverバージョン17を使用するように構成できます。BarmanはもういませんEDB Postgres Advanced Server 17またはEDB Postgres Extended 17を使用する場合、postgresサーバーパッケージをインストールして`pg_receivewal`バイナリを取得する必要があります。バイナリはこれらのバージョンのクライアントパッケージに追加されています。 TPAは、クラスターがフェールオーバー_managerとして`repmgr`で構成されている場合、Postgres 17で使用できないため、アーキテクチャエラーを発生します。サポートされているバージョンを反映するようにドキュメントを更新しました。

efm Postgresの`password_encryption`アルゴリズムをユーザー設定可能にします。 - - - ユーザー要件に応じて、'md5'`または'scram-sha-256'のいずれかに設定する必要がある構成可能な`efm_user_password_encryption`変数を公開します。これは、 `pg_hba.conf`の`efm Postgresユーザーの`auth-method`と、その暗号化されたパスワードを生成するために使用されるアルゴリズムを制御します。 `stig`に構成した`compliance`で展開されたクラスターでは、 FIPS対応オペレーティングシステムでは`md5`の使用が許可されていないため、 'efm' Postgresユーザーの`pg_hba.conf`の`auth-method`は`scram-sha-256`に設定されます。

ホスト名と共に複数のアドレスを指定できるようにします - - - tpaexec configure`に--hostnames-from`オプションを使用する場合、各行に2つのIPアドレスを含めることができるようになりました。これらは、生成された構成に含まれますpublic_ipおよびprivate_ipとしての.yml。

の変更#

Description

Addresses

postgres.service.j2テンプレートの非推奨の`PermissionStartOnly`を削除します - - - `PermissionsStartOnly`は非推奨であり、`ExecStartPost=+/bin/bash...`構文を介して達成されるようになりました

barman Postgresユーザーはスーパーユーザーでなくなりました。 - - - 特定の必要な特権がPostgresロール`barman_role`に付与され、barman Postgresユーザーに付与されます。これにより、スーパーユーザーとして`barman`ユーザーを作成する必要がなくなります。このロールは、 `postgres/createuser`を使用して`granted_roles`リストに追加することにより、他のPostgresユーザーに付与することもできます。 `barman_role`は、 Barmanタスクの一部として作成されます。 Barmanを使用しない場合、このロールは作成されません。したがって、このロールに特権を付与するタスクは、`barman_role`ユーザー名が作成されるPostgresユーザーのリストにある場合にのみ実行されます。 'barman'ユーザーは、ロール属性として明示的に指定された`NOSUPERUSER`を持つようになりました。クラスターが以前のTPAバージョンスーパーユーザーとして作成されたバーマンユーザーで展開された場合、このバージョンで展開すると`barman`ユーザーから`superuser`ロール属性を削除します。

HARPでetcdを使用する場合の新しいオプション`harp_local_etcd_only`を追加します - - - HARPでetcdを使用する場合に使用可能な新しいオプションのvar `harp_local_etcd_only`を追加します。このオプションは、 HARPマネージャーにローカルetcdノードに接続するように指示します。この推奨事項は、コンセンサスプロトコルとして`bdr`が使用されるときに同じことを行うことにより学習されたベストプラクティスに従います。複数のエンドポイントを追加するデフォルトモードでは、場合によってパフォーマンスの問題が発生する可能性があります。このオプションは、ユーザーにさらなる制御を与えるために追加されます。

postgres-monitorスクリプトの改善 - - - postgres-monitorスクリプトを改善して、回復可能なエラーをより適切に管理し、ネットワークエラーの再試行を追加して、失敗したときに失敗を返さないようにしますpostgresサービスが完全に開始されるまでに十分な時間はありません。

`efm`ロールを持つノードのみをクラスター`efm.nodes`ファイルに追加します - - - 以前は、 `pemserver`および`barman`ノードがEFM機能に関連しない場合、EFMの`Allowed node host list`に追加されました。ロールのリストに`efm`があるノードのみを含めるように`efm.node`構成を書き込むタスクをリファクタリングしました。

バグ修正#

Description

Addresses

pgd-proxy構成検証のtpaexecテストを修正しました - - - 現在のpgd-proxy構成が予想される構成と一致することを確認するテストがバージョン<5.5.0で失敗するバグを修正しました。この修正により、TPAはバージョン5.5.0で追加された構成キーを照会しようとしません。

EFMの互換性のために追加された`primary_slot_name`が`bdr_init_physical`と干渉する場合を修正するただし、 'bdr_init_physical'はノードの初期化に使用しようとしますが、スロットがPGDインストールに存在しないため、無期限にハングします。 `failover_manager`がEFMの場合、この`primary_slot_name`は条件付きで明示的に設定されるようになり、不必要な設定を回避します。

正しい`bash-completion`パッケージバージョンをダウンロードする - - - `config.yml`で`pgdcli_package_version`が指定されている場合、 `packages_for`フィルタが誤って`pgdcli_package_version`をパッケージ名に追加するため、 `bash-completion`パッケージの名前は間違っています。これにより、存在しないパッケージをダウンロードしようとします。 `bash-completion`パッケージのバージョンは`pgdcli_package_version`から独立しているため、 `packages_for`フィルターの後のリストに追加されます。

タスクが成功した後でも、場合によってはエラーメッセージが繰り返される問題を修正します。 - - - TPAは、各タスクの後にエラーメッセージスタックをクリアして、メッセージが誤って繰り返されないように保証します

Patroniクラスターへのレプリカの追加を妨げた問題を修正しました - - - Patroniクラスターの新しいレプリカがレプリケーションスロットに関連するエラーで失敗する問題を修正しました。

M1アーキテクチャの場合、barmanノードに`pem-agent`ロールを追加する。両方の`if`ステートメントを統合して、条件を1回のみ評価することにより修正しました。

`pkg`ロールの外部に`pem_python_executable`を設定します - - - ユーザーが`pkg`セレクターを除外すると、`pem_python_executable`ファクトが設定されていないために後のPEM関連タスクが失敗するバグを修正しました。