Instance configuration

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

デプロイメントの詳細に入る前に、

an overview of configuring a cluster を読んで、クラスター変数とインスタンス変数、およびconfig.ymlの他のメカニズムがどのように連携して、簡潔でレビューが簡単な構成を記述できるかを理解することが役立つ場合があります。

システムレベルの構成

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

パッケージリポジトリ

pre-deploy hook を使用できます

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

(RHEL、Rocky、AlmaLinuxの場合)

(DebianおよびUbuntuの場合)

(任意のシステム)

(パッケージをターゲットインスタンスに出荷するため)

post-repo hook を使用できます

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

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

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

(例、acl、openssl、sysstat)

Postgresおよびその他のコンポーネント(例、 Barman、 repmgr、 pgbouncer)は、クラスター構成に従って個別にインストールされます。これらは、以下のそれぞれのセクションで文書化されています。

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

Postgres

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

バージョン選択

configure options を使用してPostgresフレーバーとバージョンを選択するか、

config.ymlでpostgres_version を設定して、インストールするPostgresメジャーバージョンを指定します。

作業クラスターをセットアップするために本当に必要なことはこれだけです。このページの他のすべてはオプションです。必要に応じて、展開のあらゆる側面を制御できますが、デフォルトは慎重に調整され、出発点として実用的なクラスターを提供します。

インストール

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

(例、 pglogical、 BDRなど)

(開発およびテスト用)

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

構成

postgres-config hook を使用できます

Postgres構成ファイルがインストールされた後にタスクを実行するため(例、追加の構成ファイルをインストールするため)。

Postgres構成が整ったら、TPAは、アーキテクチャの詳細に従って、 Barman、 repmgr 、 pgbouncer 、 haproxy などの他のコンポーネントのインストールと構成を続行します。

その他のコンポーネント

サービスの構成と開始

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

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

いずれの場合も、このステップの最後にPostgresが実行されます。

Postgres起動後

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

起動後のPostgres構成が完了した後にタスクを実行するため(たとえば、 SQLクエリを実行してオブジェクトを作成したり、データをロードしたりするため)。

post-deploy hook を使用できます

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