Instance configuration#

これは、クラスターインスタンスでの展開プロセスをカスタマイズするために使用できるTPA設定の概要です。

an overview of configuring a cluster もあり、クラスター変数とインスタンス変数を一緒に使用して、簡潔でレビューが簡単なconfig.yml

を書く方法を説明します。

システムレベルの構成#

TPAが最初に行うことは、Pythonがブートストラップされ、Ansibleモジュールディストリビューション固有のプロセスを実行する準備ができていることを確認することです。次に、

configures Postgres する前に、さまざまなシステムレベルの構成タスクを完了します。

パッケージリポジトリ#

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 を使用して起動し、 systemctl stop postgres を使用して停止できます。

クラスターを初めて展開する場合、TPAはこの時点でPostgresサービスを開始します。既存のクラスターで、関連する構成の変更がある場合、TPAは必要に応じてPostgresサービスをリロードまたは再起動します。変更がなく、Postgresが既に実行されている場合、サービスは放置されます。 Postgresが既存のクラスターで実行されていない場合、TPAはそれを起動します。

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

Postgresを起動した後#

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

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

post-deploy hook を使用できます

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