検索

4.5. PostgreSQL の要件

download PDF

Red Hat Ansible Automation Platform は PostgreSQL13 を使用します。PostgreSQL ユーザーパスワードは、データベースに保存する前に SCRAM-SHA-256 のセキュアハッシュアルゴリズムでハッシュ化されます。

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

表4.5 データベース
サービス必須備考

データベース

  • 20 GB の専用ハードディスクスペース
  • 4 CPU
  • 16 GB RAM
  • 150 GB 以上を推奨
  • ストレージボリュームは、高いベースライン IOPS (1500 以上) に対応するように評価されている必要があります。
  • すべての Automation Controller データはデータベースに保存されます。データベースストレージは、マネージドホストの数、ジョブ実行数、ファクトキャッシュに保存されているファクトの数、および個別ジョブのタスク数と共に増加します。たとえば、ホスト 250 台で 1 時間ごと (1 日に 24 回) に 20 個のタスクの Playbook を実行する場合は、毎週 800000 を超えるイベントを保存します。
  • データベースに十分な容量が確保されていない場合は、以前のジョブ実行やファクトを定期的に消去する必要があります。詳細は、Automation Controller 管理ガイド管理ジョブ を参照してください。

PostgreSQL の設定

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

関連情報

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

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

重要

Red Hat は外部 (お客様がサポートする) データベースの使用をサポートしていませんが、外部データベースはお客様によって使用されています。以下の初期設定に関するガイダンスは、関連するサポートリクエストを回避するために、製品インストールの観点からのみ提供されています。

Automation Controller で使用するために、外部の PostgreSQL 準拠データベースにデータベース、ユーザー、およびパスワードを作成するには、次の手順に従います。

手順

  1. PostgreSQL 準拠のデータベースサーバーをインストールし、スーパーユーザー権限で接続します。

    # psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:

    ここでは、以下のようになります。

    -h hostname
    --host=hostname

    サーバーが実行されているマシンのホスト名を指定します。値がスラッシュで始まる場合、その値は Unix ドメインソケットのディレクトリーとして使用されます。

    -d dbname
    --dbname=dbname

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

    -U username
    --username=username

    デフォルトではなく、ユーザー username としてデータベースに接続します。(これを行うには権限が必要です。)

  2. ユーザーに割り当てられた createDB または管理者ロールを使用して、ユーザー、データベース、およびパスワードを作成します。詳細は、Database Roles を参照してください。
  3. データベース認証情報とホストの詳細を、外部データベースとして Automation Controller インベントリーファイルに追加します。

    次の例ではデフォルト値が使用されています。

    [database]
    pg_host='db.example.com'
    pg_port=5432
    pg_database='awx'
    pg_username='awx'
    pg_password='redhat'
  4. インストーラーを実行します。

    Automation Controller で PostgreSQL データベースを使用する場合、データベースは接続ユーザーが所有するものであり、createDB または管理者ロールがそのユーザーに割り当てられている必要があります。

  5. 作成したデータベースにユーザー名、パスワード、データベース名で接続できることを確認します。
  6. ユーザーの権限を確認します。ユーザーには createDB または管理者ロールが必要です。
注記

この手順の実行中、外部データベースの範囲を確認する必要があります。詳細は、https://access.redhat.com/articles/4010491 を参照してください。

4.5.2. Automation HubPostgreSQL データベースの hstore 拡張機能の有効化

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

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

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

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

手順

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

    $ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"

    <automation hub database> のデフォルト値は automationhub です。

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

    name  | default_version | installed_version |comment
    ------+-----------------+-------------------+---------------------------------------------------
     hstore | 1.7           |                   | data type for storing sets of (key, value) pairs
    (1 row)

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

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

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

    dnf install postgresql-contrib
  3. 次のコマンドを使用して、Automation Hub データベースに hstore PostgreSQL 拡張機能を作成します。

    $ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"

    その出力は次のとおりです。

    CREATE EXTENSION
  4. 次の出力では、使用されている hstore 拡張子が installed_version フィールドに含まれており、hstore が有効であることを示しています。

    name | default_version | installed_version | comment
    -----+-----------------+-------------------+------------------------------------------------------
    hstore  |     1.7      |       1.7         | data type for storing sets of (key, value) pairs
    (1 row)

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

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

前提条件

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

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

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

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

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

手順

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

    $ 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. ランダムな読み取りテストを実行します。

    $ 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 で始まる行を検索します。この行は、テストの最小値、最大値、および平均値を表示します。

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

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

© 2024 Red Hat, Inc.