Instance configuration
======================

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

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

システムレベルの構成
--------------------

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

-  :ref:`配布サポート <配布サポート>` 

-  :ref:`TPA Python環境のセットアップ <TPA Python環境のセットアップ>` （\ ``preferred_python_version`` ）

-  :ref:`Environment variables <Environment>` （例、\ ``https_proxy`` ）

パッケージリポジトリ
^^^^^^^^^^^^^^^^^^^^

 :ref:`pre-deploy hook <TPA hooks>` を使用できます

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

-  :ref:`Configure YUM repositories <Configuring YUM repositories>` 

（RHEL、Rocky、AlmaLinuxの場合）

-  :ref:`Configure APT repositories <Configuring APT repositories>` 

（DebianおよびUbuntuの場合）

-  :ref:`Configure 2ndQuadrant and EDB repositories <How TPA uses 2ndQuadrant and EDB repositories>` 

（任意のシステム）

-  :ref:`Configure a local package repository <Creating and using a local repository>` 

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

 :ref:`post-repo hook <TPA hooks>` を使用できます

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

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

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

-  :ref:`Install non-Postgres packages <Installing packages>` 

（例、acl、openssl、sysstat）

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

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

-  :ref:`Create and mount filesystems <Filesystem configuration>` （RAID、LUKSセットアップを含む）

-  :ref:`Upload artifacts <Uploading artifacts>` （ファイル、ディレクトリ、tarアーカイブ）

-  :ref:`Set sysctl values <Setting sysctl values>` 

-  :ref:`Configure /etc/hosts <Configuring /etc/hosts>` 

-  :ref:`Manage ssh_known_hosts entries <Managing SSH host keys>` 

-  :ref:`Add system locale <Locale>` 

Postgres
--------

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

バージョン選択
^^^^^^^^^^^^^^

 :ref:`configure options <Cluster configuration>` を使用してPostgresフレーバーとバージョンを選択するか、
config.ymlで\ ``postgres_version``
を設定して、インストールするPostgresメジャーバージョンを指定します。

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

インストール
^^^^^^^^^^^^

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

-  :ref:`Install Postgres and Postgres-related packages <Installing Postgres-related packages>` 

（例、 pglogical、 BDRなど）

-  :ref:`Build and install Postgres and extensions from source <Postgres source installation>` 

（開発およびテスト用）

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

構成
^^^^

-  :ref:`Configure the postgres Unix user <The postgres Unix user>` 

-  :ref:`Run initdb to create the PGDATA directory <Running initdb>` 

-  :ref:`Configure pg_hba.conf <pg_hba.conf>` 

-  :ref:`Configure pg_ident.conf <pg_ident.conf>` 

-  :ref:`Configure postgresql.conf <postgresql.conf>` 

 :ref:`postgres-config hook <TPA hooks>` を使用できます

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

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

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

-  :ref:`Configure Barman <Barman>` 

-  :ref:`Configure pgbouncer <Configuring pgbouncer>` 

-  :ref:`Configure haproxy <Configuring haproxy>` 

-  :ref:`Configure HARP <Configuring HARP>` 

-  :ref:`Configure EFM <Configuring EFM>` 

サービスの構成と開始
^^^^^^^^^^^^^^^^^^^^

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

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

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

Postgres起動後
--------------

-  :ref:`Create Postgres users <The postgres Unix user>` 

-  :ref:`Create Postgres tablespaces <Creating Postgres tablespaces>` 

-  :ref:`Create Postgres databases <Creating Postgres databases>` 

-  :ref:`Configure pglogical replication <pglogical configuration>` 

-  :ref:`Configure .pgpass <Configuring .pgpass>` 

 :ref:`postgres-config-final hook <TPA hooks>` を使用できます

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

-  :ref:`Configure BDR <EDB Postgres Distributed configuration>` 

 :ref:`post-deploy hook <TPA hooks>` を使用できます

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