Instance configuration#
これは、クラスターインスタンスでの展開プロセスをカスタマイズするために使用できるTPA設定の概要です。
an overview of configuring a cluster もあり、クラスター変数とインスタンス変数を一緒に使用して、簡潔でレビューが簡単な
config.yml
を書く方法を説明します。
システムレベルの構成#
- TPAが最初に行うことは、Pythonがブートストラップされ、Ansibleモジュールディストリビューション固有のプロセスを実行する準備ができていることを確認することです。次に、
configures Postgres する前に、さまざまなシステムレベルの構成タスクを完了します。
TPA Python環境のセットアップ
preferred_python_versionEnvironment variables 例
https_proxy
パッケージリポジトリ#
pre-deploy hook を使用できます
パッケージリポジトリが構成される前にタスクを実行します。
(RHEL、Rocky、およびAlmaLinuxの場合)
DebianおよびUbuntuの場合
任意のシステムで
パッケージをターゲットインスタンスにシップするため
post-repo hook を使用できます
パッケージリポジトリの構成後にタスクを実行します。たとえば、パッケージをインストールする前に、リポジトリ構成の問題を修正するために使用できます。
パッケージのインストール#
リポジトリが構成されると、パッケージは展開のさまざまな段階でインストールされます。システムパッケージのバッチから始めます。
例、 acl、openssl、sysstat
Postgresおよびその他のコンポーネントたとえば、 Barman、repmgr、pgbouncerは、クラスター構成に従って個別にインストールされます。
その他のコンポーネント を参照してください。
その他のシステムレベルのタスク#
Create and mount file systems RAID、LUKSセットアップを含む
Upload artifacts ファイル、ディレクトリ、tarアーカイブ
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 を使用できます
展開プロセスが完了した後にタスクを実行します。