Instance configuration#

このページでは、クラスターインスタンスでの展開プロセスをカスタマイズするためにTPAが提供するさまざまな制御の概要を、より詳細なドキュメントへのリンクとともに紹介します。

デプロイメントの詳細に入る前に、 クラスター構成 を読んで、config.ymlのクラスター変数、インスタンス変数、およびその他のメカニズムがどのように連携して、簡潔でレビューが簡単な構成を書くことができるようにする方法を理解すると役立ちます。

システムレベルの構成#

TPAが最初に行うことは、Pythonがブートストラップされ、Ansibleモジュールディストリビューション固有のプロセスを実行する準備ができていることを確認することです。次に、以下の Postgresのフレーバーとバージョン に進む前に、さまざまなシステムレベルの構成タスクを完了します。

パッケージリポジトリ#

展開前 を使用できます

パッケージリポジトリが構成される前にタスクを実行します。

RHEL、Rocky、およびAlmaLinuxの場合

DebianおよびUbuntuの場合

任意のシステムで

パッケージをターゲットインスタンスにシップするため

ポストリポジトリ を使用できます

パッケージリポジトリが構成された後にタスクを実行するにはたとえば、パッケージをインストールする前にリポジトリ構成の問題を修正します。

パッケージのインストール#

リポジトリが構成されると、パッケージは展開のさまざまな段階でインストールされます。システムパッケージのバッチから始めます。

例、 acl、openssl、sysstat

Postgresおよびその他のコンポーネントBarman、repmgr、pgbouncerなどは、クラスター構成に応じて個別にインストールされます。これらは、以下の独自のセクションに文書化されています。

その他のシステムレベルのタスク#

デプロイメントを完全にスキップする#

TPAがインスタンスの展開プロセスの一部を実行しないようにするには、つまり、TPAにインスタンスをプロビジョニングして、そのままにしておく場合、インスタンスのprovision_only 設定をconfig.yml でtrue に設定します。この設定により、TPAは、 tpaexec deploy が認識するインベントリからインスタンスを完全に省略します。

Postgres#

Postgres構成は、repmgrやpgbouncerなどの他のコンポーネントのセットアップと連携する拡張プロセスです。それはPostgres自分自身をインストールすることから始まります。

バージョンの選択#

ソフトウェアバージョン を使用してPostgresフレーバーとバージョンを選択するか、config.ymlでpostgres_version を設定して、インストールするPostgresメジャーバージョンを指定します。

作業用クラスターをセットアップするために実際に必要な作業はこれだけです。このページのその他の部分はすべてオプショナル。必要に応じて、展開のすべての側面を制御できますが、デフォルトは注意深く調整されて、開始点として合理的なクラスターを提供します。

インストール#

デフォルトのpostgres_installation_method では、アーキテクチャのニーズに応じて、選択したPostgresのバージョンのパッケージをさまざまな拡張機能とともにインストールします。

例、 pglogical、 BDRなど

開発およびテスト用

どのインストール方法を選択するかにかかわらず、TPAは最小限の労力で同じクラスター構成を提供できます。

構成#

postgres-config を使用できます

Postgres構成ファイルがインストールされた後にタスクを実行するには追加の構成ファイルをインストールします。

Postgresの構成が配置されると、TPAは、アーキテクチャの詳細に従って、 Barman、repmgr、pgbouncer、haproxyなどの他のコンポーネントのインストールと構成を開始します。

その他のコンポーネント#

サービスの構成と開始#

TPAは、各サービスのsystemdサービスユニットファイルをインストールします。 Postgresのサービスの名前はpostgres.service で、 systemctl start postgres で開始または停止できます。

最初の展開では、Postgresサービスが開始されます。 tpaexec deploy を再度実行している場合、行った構成変更によっては、サービスがリロードまたは再起動される場合があります。もちろん、サービスが既に実行されており、変更がない場合は、放置されます。

いずれの場合も、この手順の最後にPostgresは実行されます。

Postgresを起動した後#

postgres-config-final を使用できます

起動後のPostgres構成が完了した後にタスクを実行するためSQLクエリを実行してオブジェクトを作成またはデータをロードするためなど。

展開後 を使用できます

展開プロセスが完了した後にタスクを実行します。