Documentation

5. 要件

注釈

Tower は総合的なアプリケーションで、インストールプロセスでは PostgreSQL、Django、NGINX など、複数の依存関係をインストールします。スタンドアロンの仮想マシンまたはクラウドインスタンスに Tower をインストールし、そのマシンに別のアプリケーションを共存させることはできません (モニタリングまたはロギングソフトウェア以外)。Tower および Ansible は Python で記述されていますが、単純な Python ライブラリーではありません。そのため、Tower は Python virtualenv や類似したサブシステムにはインストールできません。本ガイドのインストールの方法に記載されているようにインストールする必要があります。OpenShift ベースのデプロイメントについては、「OpenShift Deployment and Configuration」を参照してください。

Ansible Tower には以下の要件があります。

  • サポート対象のオペレーティングシステム:

    • Red Hat Enterprise Linux 8.2 以降 64 ビット (x86)

    • Red Hat Enterprise Linux 7.7 以降 64 ビット (x86)

    • CentOS 7.7 以降 64 ビット (x86)

注釈

Tower プラットフォームとしての Ubuntu のすべてのバージョンのサポートは、Ansible Tower バージョン 3.6 で終了しました。

  • Mozilla Firefox または Google Chrome の現行のサポートバージョン

    • その他の HTML 5 準拠の Web ブラウザーは機能する場合がありますが、完全にテストまたはサポートされていません。

  • Tower のインストールには、最低でも CPU が 2 つ 必要です。特定の設定でのフォーク数に必要とされる CPU の容量を判断するには、Ansible Tower User Guide の「capacity algorithm」のセクションを参照してください。

  • 最小 4 GB のメモリー *(Tower のインストール)

    • 4 GB のメモリー (Vagrant 試用版のインストールには推奨最小要件)

    • 4 GB メモリー (外部のスタンドアロン PostgreSQL データベースには最小要件)

    • 固有のメモリー要件については、Ansible Tower User Guide の「capacity algorithm」セクションを参照して、特定の設定で、フォーク数に必要とされる容量を判断してください。

  • Tower サービスモード専用の ハードディスク容量 20 GB

    • 要件 20 GB 中で /var/ 専用に 10 GB 分割り当てる必要があります。/var/ は Tower がファイルおよび作業ディレクトリーを保存する場所です。

    • ストレージボリュームは、最低ベースラインとして IOPS が 750 となるようにする必要があります。

  • データベースを含むノード専用の ハードディスク容量 20 GB (150 GB 以上を推奨)

    • ストレージボリュームは、ベースライン IOPS (1000 以上) を高くする必要があります。

    • Tower データはすべてデータベースに格納されます。データベースストレージは、管理するホスト、実行するジョブ数、ファクトキャッシュに保存するファクト数、個別ジョブのタスク数に合わせて増加します。たとえば、ホスト 250 台とタスク 20 件に対して 1 時間毎 (1 日に 24 回) に実行される Playbook は毎週データベースに 80 万件以上のイベントを保存します。

    • データベースに十分な容量が確保されていない場合には、以前のジョブ実行やファクトを定期的に消去する必要があります。詳しい情報は、Ansible Tower Administration Guide の「Management Jobs」を参照してください。

  • 64 ビットのサポートが必要 (カーネルとランタイム)

  • Ansible Tower 3.7 以降を実行するには、PostgreSQL バージョン 10 が必要です。バックアップと復元は、現在の Ansible Tower バージョンでサポートされている PostgreSQL バージョンで のみ 機能します。

  • Ansible Tower バージョン 3.7 以降を実行するには (最低でも) Ansible バージョン 2.8 が必要 です。

注釈

上記に指定した PostgreSQL のバージョンと Ansible のバージョンよりも古いバージョンを使用して、Ansible Tower 3.7 以降を実行することはできません。PostgresSQL も Ansible も存在しない場合は、インストールスクリプトによりインストールされます。

  • Amazon EC2 の場合:

    • インスタンスのサイズは m4.large 以上

    • ホスト 100 台以上ある場合には m4.xlarge 以上

5.1. Tower の要件に関する追加の注意点

他のオペレーティングシステムは技術的に機能する場合がありますが、現在 Ansible Tower インストールのホストをサポートするのは上記の一覧のみです。サポートのないオペレーティングシステムで Tower を実行するという確実な要件がある場合には Red Hat カスタマーポータル (https://access.redhat.com/) 経由で Ansible までお問い合わせください。他のオペレーティングシステム (ノード) の管理は、Ansible プロジェクト自体に文書でまとめられており、リストに追加することも可能です。

実際のメモリー要件は Tower が同時に管理するホスト数により異なります (これはジョブテンプレートまたはシステムの ansible.cfg ファイルの forks パラメーターにより制御されています)。発生する可能性のあるリソースの競合を回避するには、Ansible はフォーク 10 ごとにメモリーを 1 GB、さらに Tower 用に + 2GB 分搭載することを推奨しています。詳細は「capacity algorithm」を参照してください。forks を 400 に設定した場合には、メモリーを 40 GB 搭載することを推奨します。

Ansible Tower をインストールするホストでは、Tower により、umask が 0022 に設定されているかどうかが確認されます。設定に失敗する場合は、umask=0022 に設定してこのエラーが発生しないようにしてください。

当然、より多くのホストに対応できますが、フォーク数がホストの総数より少ない場合は、ホスト間により多くのパスが必要です。設定を要求する各システムがキューに入り、できるだけ早く処理されるか、あるいは Tower が AMI などのイメージを作成またはデプロイする場合など、定期的な更新の使用、または Tower に含まれるプロビジョニングコールバックシステムを使用して、このようなメモリーの制限を回避することができます。これらすべては、大規模な環境を管理する優れたアプローチです。他に質問がある場合には、Red Hat カスタマーポータル (https://access.redhat.com/) 経由で Ansible までお問い合わせください。

Tower が管理するシステムの要件は Ansible と同じです (http://docs.ansible.com/intro_getting_started.html)。

5.1.1. PostgreSQL の主な変更

Ansible Tower では、PostgreSQL 10 を使用します。PostgreSQL 10 は、RHEL 7 の SCL パッケージから、また、RHEL 8 のアプリケーションストリームから取得できます。PostgreSQL 10 へのアップグレード時には注意する必要のある変更点は以下のとおりです。

  • PostgreSQL ユーザーパスワードは、データベースに保存する前に SCRAM-SHA-256 のセキュアハッシュアルゴリズムでハッシュ化されます。

  • PostgreSQL 10 ではユーザーのパスワードをより安全に保存できるようになったため、インストール時にインベントリーファイルに pg_hashed_password を指定する必要はなくなりました。インストーラー用にインベントリーファイルでユーザーのパスワードを指定する (pg_password) 場合には、PostgreSQL がインストールプロセスの一部として、このパスワードを SCRAM-SHA-256 でハッシュ化します。セットアップが失敗する場合があるため、pg_password で特殊文字を 使用しないでください

  • Tower は、Ansible Tower 3.6 以降では PostgreSQL のソフトウェアコレクションバージョンを使用しているため、rh-postgresql10 scl を有効にしてデータベースにアクセスできるようにする必要があります。管理者は awx-manage dbshell コマンドを使用して、PostgreSQL SCL を自動的に有効にできます。

  • Tower インスタンスがデータベースにアクセスできるかどうかを判断する必要がある場合は、awx-manage check_db のコマンドで確認できます。

5.1.2. PostgreSQL の設定

Tower インストーラーで管理されないように、個別ノードとして PostgreSQL データベースを設定することもできます (オプション)。Tower インストーラーがデータベースサーバーを管理する場合には、大半のワークロード向けに一般的に推奨されているデフォルト値を使用して、サーバーを設定します。ただし、スタンドアロンのデータベースサーバーノードについては、この PostgreSQL 設定を調整することができます。ansible_memtotal_mb は、データベースサーバーの合計メモリーサイズに置き換えてください。

max_connections == 1024
shared_buffers == ansible_memtotal_mb*0.3
work_mem == ansible_memtotal_mb*0.03
maintenance_work_mem == ansible_memtotal_mb*0.04

tuning your PostgreSQL server」の詳細は、「PostgreSQL documentation 」を参照してください。

5.2. Ansible のソフトウェア要件

Ansible Tower は Ansible Playbook に依存しており、インストール前に Ansible の最新安定版をインストールする必要がありますが、手動で Ansible をインストールする必要はなくなりました。

Ansible Tower バージョン 2.3 以降、Tower のインストールプログラムはインストールプロセスの一部として Ansible のインストールを試行します。以前の Tower では、Tower のインストールプログラムを実行する前に Ansible ソフトウェアリリースパッケージを手動でインストールする必要がありました。現在は Tower は、最新安定版の Ansible リリースパッケージのインストールを試行します。

バンドルの Tower インストールを実行する場合は、インストールプログラムにより、バンドルから Ansible およびその依存関係のインストールが試行されます (詳しい情報は「バンドルの Tower インストールプログラムの使用」を参照してください)。

Ansible をご自身でインストールすることを選択すると、Ansible がインストールされていることを Tower インストールプログラムが検出して、再インストールを行わないようにします。Ansible Tower が正しく機能するようにするには、yum などのパッケージマネージャーを使用して Ansible をインストールし、最新安定版をインストールする必要がある点に注意してください。Ansible Tower バージョン 3.7 以降には、Ansible バージョン 2.8 以降が必要です。