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

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

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

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

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

- :ref:`Distribution support <Distribution support>` 

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

- :ref:`Environment variables <Environment>`  例 ``https_proxy``

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

:ref:`展開前 <展開前>` を使用できます

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

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

RHEL、Rocky、およびAlmaLinuxの場合

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

DebianおよびUbuntuの場合

- :ref:`Configuring EDB Repos 2.0 repositories <Configuring EDB Repos 2.0 repositories>` 

任意のシステムで

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

パッケージをターゲットインスタンスにシップするため

:ref:`ポストリポジトリ <ポストリポジトリ>` を使用できます

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

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

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

- :ref:`Installing packages <Installing packages>` 

例、 acl、openssl、sysstat

Postgresおよびその他のコンポーネントBarman、repmgr、pgbouncerなどは、クラスター構成に応じて個別にインストールされます。これらは、以下の独自のセクションに文書化されています。

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

- :ref:`Filesystem configuration <Filesystem configuration>`  RAID、LUKSセットアップを含む

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

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

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

- :ref:`Managing SSH host keys <Managing SSH host keys>` 

- :ref:`Locale <Locale>` 

デプロイメントを完全にスキップする
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TPAがインスタンスの展開プロセスの一部を実行しないようにするには、つまり、TPAにインスタンスをプロビジョニングして、そのままにしておく場合、インスタンスの\ ``provision_only``
設定を\ ``config.yml`` で\ ``true``
に設定します。この設定により、TPAは、 ``tpaexec deploy``
が認識するインベントリからインスタンスを完全に省略します。

Postgres
--------

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

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

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

作業用クラスターをセットアップするために実際に必要な作業はこれだけです。このページのその他の部分はすべてオプショナル。必要に応じて、展開のすべての側面を制御できますが、デフォルトは注意深く調整されて、開始点として合理的なクラスターを提供します。

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

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

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

例、 pglogical、 BDRなど

- :ref:`Postgres source installation <Postgres source installation>` 

開発およびテスト用

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

構成
^^^^

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

- :ref:`Running initdb <Running initdb>` 

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

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

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

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

Postgres構成ファイルがインストールされた後にタスクを実行するには追加の構成ファイルをインストールします。

Postgresの構成が配置されると、TPAは、アーキテクチャの詳細に従って、
Barman、repmgr、pgbouncer、haproxyなどの他のコンポーネントのインストールと構成を開始します。

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

- :ref:`barman-pre-config <barman-pre-config>` 

- :ref:`Repmgrリダイレクトpgbouncer <Repmgrリダイレクトpgbouncer>` 

- :ref:`etcd <etcd>` 

- :ref:`Patroni cluster management commands <Patroni cluster management commands>` 

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

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

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

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

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

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

いずれの場合も、この手順の最後にPostgresは実行されます。

Postgresを起動した後
--------------------

- :ref:`Creating Postgres users <Creating Postgres users>` 

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

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

- :ref:`pglogical <pglogical>` 

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

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

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

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

:ref:`展開後 <展開後>` を使用できます

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