2.6. PostgreSQL の要件


Red Hat Ansible Automation Platform 2.5 は PostgreSQL 15 を使用します。外部の (お客様がサポートする) データベースが ICU をサポートしている必要があります。PostgreSQL ユーザーパスワードは、データベースに保存する前に SCRAM-SHA-256 のセキュアハッシュアルゴリズムでハッシュ化されます。

Automation Controller インスタンスがデータベースにアクセスできるかどうかを確認するには、awx-manage check_db コマンドを使用します。

注記
  • Automation Controller のデータはデータベースに保存されます。データベースストレージは、マネージドホストの数、ジョブ実行数、ファクトキャッシュに保存されているファクトの数、および個別ジョブのタスク数と共に増加します。たとえば、ホスト 250 台で 1 時間ごと (1 日に 24 回) に 20 個のタスクの Playbook を実行する場合は、毎週 800,000 件を超えるイベントがデータベースに保存されます。
  • データベースに十分な容量が確保されていない場合は、以前のジョブ実行やファクトを定期的に消去する必要があります。詳細は、自動化実行の設定 ガイドの 管理ジョブ を参照してください。

PostgreSQL の設定

必要に応じて、PostgreSQL データベースを、Red Hat Ansible Automation Platform インストーラーで管理されていない個別ノードとして設定できます。Ansible Automation Platform インストーラーがデータベースサーバーを管理する場合は、大半のワークロードで一般的に推奨されているデフォルト値を使用してサーバーを設定します。データベースのパフォーマンスを向上させるのに使用できる設定の詳細は、自動化実行の設定 ガイドの Automation Controller の PostgreSQL データベースの設定とメンテナンス を参照してください。

関連情報

PostgreSQL サーバーのチューニングの詳細は、PostgreSQL のドキュメント を参照してください。

2.6.1. 外部 (お客様がサポートする) データベースの設定

重要
  • Ansible Automation Platform で外部データベースを使用する場合は、そのデータベースを作成および保守する必要があります。Ansible Automation Platform をアンインストールする際は、外部データベースを必ずクリアしてください。
  • Red Hat Ansible Automation Platform 2.5 は PostgreSQL 15 を使用します。外部の (お客様がサポートする) データベースが ICU をサポートしている必要があります。
  • 外部データベースの設定時には、外部データベースの対象範囲を確認する必要があります。詳細は、Red Hat Ansible Automation Platform データベースの対象範囲 を参照してください。

Red Hat Ansible Automation Platform 2.5 は PostgreSQL 15 を使用します。外部の (お客様がサポートする) データベースが ICU をサポートしている必要があります。Ansible Automation Platform のコンポーネント (Automation Controller、Event-Driven Ansible、Automation Hub、プラットフォームゲートウェイなど) で使用する外部 PostgreSQL 準拠データベースを設定するには、次の手順を使用します。

手順

  1. スーパーユーザー権限で PostgreSQL 準拠のデータベースサーバーに接続します。

    Copy to Clipboard Toggle word wrap
    # psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:
  2. <hostname> のデフォルト値は hostname です。

    Copy to Clipboard Toggle word wrap
    -h hostname
    --host=hostname
  3. サーバーが実行されているマシンのホスト名を指定します。値がスラッシュで始まる場合、その値は UNIX ドメインソケットのディレクトリーとして使用されます。

    Copy to Clipboard Toggle word wrap
    -d dbname
    --dbname=dbname
  4. 接続するデータベースの名前を指定します。これは、コマンドラインで最初の非オプション引数として dbname を指定するのと同等です。dbname には接続文字列を指定できます。その場合、接続文字列パラメーターにより、競合するコマンドラインオプションがオーバーライドされます。

    Copy to Clipboard Toggle word wrap
    -U username
    --username=username
  5. デフォルトではなく、ユーザー username としてデータベースに接続します (そのための権限が必要です)。
  6. ユーザーに割り当てられた createDB ロールまたは administrator ロールを使用して、ユーザー、データベース、およびパスワードを作成します。詳細は、Database Roles を参照してください。
  7. インストールプログラムを実行します。PostgreSQL データベースを使用する場合、データベースは接続ユーザーが所有するものであり、createDB または管理者ロールがそのユーザーに割り当てられている必要があります。
  8. インベントリーファイルに指定した認証情報を使用して、作成されたデータベースに接続できることを確認します。
  9. ユーザーの権限を確認します。ユーザーには createDB または管理者ロールが必要です。
  10. 各コンポーネントの PostgreSQL ユーザーとデータベースを作成したら、[all:vars] グループのインベントリーファイルにデータベース認証情報とホストの詳細を追加します。

    Copy to Clipboard Toggle word wrap
    # Automation controller
    pg_host=data.example.com
    pg_database=<database name>
    pg_port=<port_number>
    pg_username=<set your own>
    pg_password=<set your own>
    
    # Platform gateway
    automationgateway_pg_host=aap.example.org
    automationgateway_pg_database=<set your own>
    automationgateway_pg_port=<port_number>
    automationgateway_pg_username=<set your own>
    automationgateway_pg_password=<set your own>
    
    # Automation hub
    automationhub_pg_host=data.example.com
    automationhub_pg_database=<database_name>
    automationhub_pg_port=<port_number>
    automationhub_pg_username=<username>
    automationhub_pg_password=<password>
    
    # Event-Driven Ansible
    automationedacontroller_pg_host=data.example.com
    automationedacontroller_pg_database=<database_name>
    automationedacontroller_pg_port=<port_number>
    automationedacontroller_pg_username=<username>
    automationedacontroller_pg_password=<password>

2.6.1.1. オプション: 相互 TLS (mTLS) 認証の有効化

mTLS 認証はデフォルトで無効になっています。各コンポーネントのデータベースを mTLS 認証で設定するには、[all:vars] グループのインベントリーファイルに次の変数を追加し、各コンポーネントに異なる TLS 証明書とキーがあることを確認します。

Copy to Clipboard Toggle word wrap
# Automation controller
pgclient_sslcert=/path/to/awx.cert
pgclient_sslkey=/path/to/awx.key
pg_sslmode=verify-full or verify-ca

# Platform gateway
automationgateway_pgclient_sslcert=/path/to/gateway.cert
automationgateway_pgclient_sslkey=/path/to/gateway.key
automationgateway_pg_sslmode=verify-full or verify-ca

# Automation hub
automationhub_pgclient_sslcert=/path/to/pulp.cert
automationhub_pgclient_sslkey=/path/to/pulp.key
automationhub_pg_sslmode=verify-full or verify-ca

# Event-Driven Ansible
automationedacontroller_pgclient_sslcert=/path/to/eda.cert
automationedacontroller_pgclient_sslkey=/path/to/eda.key
automationedacontroller_pg_sslmode=verify-full or verify-ca

2.6.1.2. オプション: カスタム TLS 証明書の使用

デフォルトでは、インストールプログラムはすべての Ansible Automation Platform サービスに対して自己署名 TLS 証明書と鍵を生成します。

これらを独自のカスタム証明書と鍵に置き換える場合は、次のインベントリーファイル変数を設定します。

Copy to Clipboard Toggle word wrap
aap_ca_cert_file=<path_to_ca_tls_certificate>
aap_ca_key_file=<path_to_ca_tls_key>

いずれかの証明書がカスタム認証局 (CA) によって署名されている場合は、custom_ca_cert インベントリーファイル変数を使用して認証局の証明書を指定する必要があります。

Copy to Clipboard Toggle word wrap
custom_ca_cert=<path_to_custom_ca_certificate>
注記

複数のカスタム CA 証明書がある場合は、それらを 1 つのファイルに結合し、結合した証明書を custom_ca_cert インベントリーファイル変数で参照します。

2.6.2. Automation Hub PostgreSQL データベースの hstore 拡張機能の有効化

Ansible Automation Platform 2.5 で追加されたデータベース移行スクリプトは、hstore フィールドを使用して情報を保存します。そのため、Automation Hub PostgreSQL データベースで hstore 拡張機能を有効にする必要があります。

Ansible Automation Platform インストーラーとマネージド PostgreSQL サーバーを使用する場合、このプロセスは自動的に行われます。

PostgreSQL データベースが外部にある場合は、インストール前に、Automation Hub PostgreSQL データベースで hstore 拡張機能を手動で有効にする必要があります。

インストール前に hstore 拡張機能が有効になっていないと、データベースの移行中にエラーが発生します。

手順

  1. 拡張機能が PostgreSQL サーバー (Automation Hub データベース) で利用できるかどうかを確認します。

    Copy to Clipboard Toggle word wrap
    $ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
  2. <automation hub database> のデフォルト値は automationhub です。

    hstore が利用できる場合の出力例:

    Copy to Clipboard Toggle word wrap
    name  | default_version | installed_version |comment
    ------+-----------------+-------------------+---------------------------------------------------
     hstore | 1.7           |                   | data type for storing sets of (key, value) pairs
    (1 row)

    hstore が利用できない場合の出力例:

    Copy to Clipboard Toggle word wrap
     name | default_version | installed_version | comment
    ------+-----------------+-------------------+---------
    (0 rows)
  3. RHEL ベースのサーバーでは、hstore 拡張機能は postgresql-contrib RPM パッケージに含まれていますが、PostgreSQL サーバー RPM パッケージのインストール時に自動的にインストールされません。

    RPM パッケージをインストールするには、次のコマンドを使用します。

    Copy to Clipboard Toggle word wrap
    dnf install postgresql-contrib
  4. 次のコマンドを使用して、hstore PostgreSQL 拡張機能を Automation Hub データベースにロードします。

    Copy to Clipboard Toggle word wrap
    $ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"

    次の出力では、使用されている hstore 拡張機能が installed_version フィールドに表示されています。これは hstore が有効になっていることを示しています。

    Copy to Clipboard Toggle word wrap
    name | default_version | installed_version | comment
    -----+-----------------+-------------------+------------------------------------------------------
    hstore  |     1.7      |       1.7         | data type for storing sets of (key, value) pairs
    (1 row)

2.6.3. Ansible Automation Platform PostgreSQL データベースのストレージパフォーマンスのベンチマーク

Flexible I/O Tester (FIO) ツールを使用して、Ansible Automation Platform PostgreSQL データベースの最小要件が満たされているかどうかを確認します。FIO は、ストレージシステムの読み取りおよび書き込み IOPS パフォーマンスをベンチマークするために使用されるツールです。

前提条件

  • Flexible I/O Tester (fio) ストレージパフォーマンスベンチマークツールがインストールされている。

    fio をインストールするには、root ユーザーとして次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    # yum -y install fio
  • fio テストデータログファイルを保存するのに十分なディスク容量がある。

    この手順に示す例では、/tmp ディレクトリーに少なくとも 60 GB のディスク領域が必要です。

    • numjobs は、コマンドによって実行されるジョブの数を設定します。
    • size=10G は、各ジョブによって生成されるファイルサイズを設定します。
  • size パラメーターの値を調整済みである。この値を調整すると、テストデータの量が減ります。

手順

  1. ランダムな書き込みテストを実行します。

    Copy to Clipboard Toggle word wrap
    $ fio --name=write_iops --directory=/tmp --numjobs=3 --size=10G \
    --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
    --verify=0 --bs=4K --iodepth=64 --rw=randwrite \
    --group_reporting=1 > /tmp/fio_benchmark_write_iops.log \
    2>> /tmp/fio_write_iops_error.log
  2. ランダムな読み取りテストを実行します。

    Copy to Clipboard Toggle word wrap
    $ fio --name=read_iops --directory=/tmp \
    --numjobs=3 --size=10G --time_based --runtime=60s --ramp_time=2s \
    --ioengine=libaio --direct=1 --verify=0 --bs=4K --iodepth=64 --rw=randread \
    --group_reporting=1 > /tmp/fio_benchmark_read_iops.log \
    2>> /tmp/fio_read_iops_error.log
  3. 結果を確認します。

    ベンチマークコマンドによって書き込まれたログファイルで、iops で始まる行を検索します。この行は、テストの最小値、最大値、および平均値を表示します。

    次の例は、ランダム読み取りテストのログファイル内の行を表示しています。

    Copy to Clipboard Toggle word wrap
    $ cat /tmp/fio_benchmark_read_iops.log
    read_iops: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
    […]
       iops        : min=50879, max=61603, avg=56221.33, stdev=679.97, samples=360
    […]
    注記

    上記は、お使いのシステムで最適なパフォーマンスを評価するのに役立つベースラインです。システムは変更される可能性があり、テスト時におけるシステム、ストレージ、またはネットワークの他の状態によってパフォーマンスが変わる場合があります。独自のビジネス要件、アプリケーションのワークロード、および新しい要求に応じて、ログファイルを確認、監視、再検討する必要があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.