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

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

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

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

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

-  :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>` を使用できます

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