Instance configuration

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

デプロイメントの詳細に進む前に、 an overview of configuring a cluster を読んで、 config.ymlのクラスター変数とインスタンス変数、およびその他のメカニズムがどのように連携して、簡潔で確認しやすい構成を作成できるかを理解すると役立つ場合があります。

システムレベルの構成

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

パッケージリポジトリ

pre-deploy hook を使用できます

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

  • Configure YUM repositories

(RHEL、Rocky、AlmaLinuxの場合)

  • Configure APT repositories

(DebianおよびUbuntuの場合)

  • Configure 2ndQuadrant and EDB repositories

(任意のシステム)

  • Configure a local package repository

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

post-repo hook を使用できます

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

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

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

  • Install non-Postgres packages

(例、acl、openssl、sysstat)

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

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

  • Create and mount filesystems (RAID、LUKSセットアップを含む)

  • Upload artifacts (ファイル、ディレクトリ、tarアーカイブ)

  • Set sysctl values

  • Configure /etc/hosts

  • Manage ssh_known_hosts entries

Postgres

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

バージョン選択

--postgres-version を使用する

configureオプションまたはconfig.ymlでpostgres_version を設定して、インストールするPostgresメジャーバージョンを指定します。デフォルトのバージョンは現在11ですが、代わりに9.4、9.5、9.6、10、12、または13を選択できます。

動作するクラスターをセットアップするために必要なことはこれだけです。このページの他のすべてはオプションです。必要に応じて展開のすべての側面を制御できますが、デフォルトは開始点として適切なクラスターを提供するように注意深く調整されています。

インストール

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

  • Install Postgres and Postgres-related packages

(例、 pglogical、 BDRなど)

  • Build and install Postgres and extensions from source

(開発・テスト用)

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

構成

  • Configure the postgres Unix user

  • Run initdb to create the PGDATA directory

  • Configure pg_hba.conf

  • Configure pg_ident.conf

  • Configure postgresql.conf

postgres-config hook を使用できます

Postgres構成ファイルのインストール後にタスクを実行します(追加の構成ファイルをインストールするなど)。

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

その他のコンポーネント

  • Configure Barman

  • Configure pgbouncer

  • Configure haproxy

  • Configure HARP

  • Configure EFM

サービスの構成と開始

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

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

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

Postgres起動後

  • Create Postgres users

  • Create Postgres tablespaces

  • Create Postgres databases

  • Configure pglogical replication

  • Configure .pgpass

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

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

  • Configure BDR

post-deploy hook を使用できます

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