Documentation

1. Tower インストールの準備

本ガイドは、できるだけ早く Ansible Tower のインストールと設定を行う際に役立ちます。

インストールの完了後に、Web ブラウザーを使用して、Tower にアクセスして、すべての 機能を利用することができます。

1.1. インストールおよびリファレンスガイド

本ガイドは基本事項を対象としていますが、より詳しい情報が必要な場合には、『インストールおよびリファレンスガイド』を参照してください。

また、インストールの前には『General Installation Notes』も確認してください。

1.2. 前提条件および要件

プラットフォームの情報は、Ansible Tower Installation and Reference Guide の「ir_install_notes_reqs」を参照してください。

注釈

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

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

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

    • Red Hat Enterprise Linux 7.2 以降 64 ビット
    • CentOS 7.2 以降 64 ビット
    • Ubuntu 14.04 LTS 64 ビット
    • Ubuntu 16.04 LTS 64 ビット

注釈

Ansible Tower では、Red Hat Enterprise Linux 7.2 以降が要件となります。

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

    • その他の HTML 5 準拠の Web ブラウザーは機能する場合がありますが、完全にテストまたはサポートされていません。
  • 最小 2 GB のメモリー (4 GB 以上のメモリーを推奨)

    • 2 GB のメモリー (Vagrant 試用版のインストールには推奨最小要件)
    • 100 のフォークごとに 4 GB メモリーを推奨します。
  • ** 20 GB の専用ハードディスク領域**

    • 要件 20 GB 中で /var/ 専用に 10 GB 分割り当てる必要がります。/var/ は Tower がファイルおよび作業中のディレクトリーを保存する場所です (これよりも少ない容量を割り当てるとインストールに失敗する原因になります)。
  • 64 ビットのサポートが必要 (カーネルとランタイム)

  • Amazon EC2 の場合:

    • インスタンスのサイズは m3.medium 以上
    • ホスト 100 台以上ある場合には m3.xlarge 以上
  • システムトラッキングのデータストレージの場合:

    • Tower のシステムトラッキングを使用する予定の場合は、以下のガイドラインで必要な推定領域が分かります。基本的な計算式は以下のとおりです。

      (インベントリー内のホスト数) * (スキャン数) * ((平均モジュールのファクトサイズ) * (モジュールのスキャン数) / 3)

    • たとえば、1 年間 1 日 1 回スキャンするようにスケジューリングしたとします。

      (ホスト = 1,000) * (スキャン数 = 365) * ((平均モジュールのファクトサイズ = 100 kb) * (モジュール数 = 4) / 3) = 48 GB

    デフォルトのスキャン操作には記載の 4 つのモジュールが含まれますが、独自のものを追加することができます。モジュールの種類や収集するファクトのサイズにより、サイズは大きくなる可能性があります。

    サイズを抑えるには、管理ジョブを使用して以前のファクトをパージすることができます。詳しい情報は、『Ansible Tower Administration Guide』の「 Management Jobs」を参照してください。

    注釈

    Ansible Tower 3.0 から MongoDB ではなく Postgres を使用するようになっています。新しい Postgres のデータタイプは、人間が判読可能な JSON (ホワイトスペースや新しいがない) の同等のものと比べると消費する領域が約 1/3 となります。Ansible Tower の以前のバージョンを使用する場合は、以下の例を使用して必要な領域がどの程度か判断してください。

    (ホスト = 1,000) * (スキャン数 = 365) * ((平均モジュールのファクトサイズ = 100 kb) * (モジュール数 = 4) = 146 GB

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

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

実際のメモリー要件は Tower が同時に管理するホスト数により異なります (これはジョブテンプレートまたはシステムの ansible.cfg ファイルの forks パラメーターにより制御されています)。発生する可能性のあるリソースの競合を回避するには、Ansible はフォーク 100 ごとにメモリー 4 GB を搭載することを推奨しています。たとえば、forks が 100 に設定されている場合には メモリー 4 GB を、forks が 400 の場合は、メモリー 16 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)。

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

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

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

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

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

便宜上、これらの説明は以下で簡単にまとめています。

1.5. プラットフォーム固有のインストールに関する注意点

1.5.1. Red Hat Enterprise Linux および CentOS の設定に関する注意

  • PackageKit は頻繁に、インストール/更新メカニズムを干渉する可能性があります。設定プロセスの実行前にインストールする場合は、PackageKit を無効または削除することを検討してください。
  • “targeted” の SELinux ポリシーのみがサポートされます。targeted ポリシーは、disabled、permissive または enforcing に設定可能です。
  • バンドルインストールを実行する場合は (詳細は「バンドルの Tower インストールプログラムの使用」を参照)、Red Hat Enterprise Linux をご利用のお客様は、デフォルトで無効になっている以下のリポジトリーを有効化する必要があります。
    • Red Hat Enterprise Linux 7 をお使いの場合は extras リポジトリーを有効化する必要があります。

1.5.2. Red Hat Enterprise Linux および CentOS での Ansible の設定およびインストール

以下の手順は、リポジトリーへのアクセスの設定、以前のバージョンの Tower への Ansible のインストールに役立ちます。

1.5.2.1. リポジトリーアクセスの設定

EPEL リポジトリーおよびその他に必要なリポジトリーを設定します。

Red Hat Enterprise Linux 7 および CentOS 7 の場合には root ユーザーで実行します。

root@localhost:~$ yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

注釈

  • お使いの環境に固有の extras リポジトリーを有効化する必要がある場合もあります。
    • CentOS 7 は extras
    • Red Hat Enterprise Linux 7 は rhel-7-server-extras-rpms
    • EC2 で実行する場合は rhui-REGION-rhel-server-extras
  • 公式な Red Hat Enterprise Linux 7 マーケットプレース AMI を使用する場合は、オプションのリポジトリー (EC で rhui-REGION-rhel-server-optional という名称) を有効化できる最新の rh-amazon-rhui-client パッケージがインストールされていることを確認してください。

1.5.2.2. Ansible のインストール

注釈

Tower は Ansible プレイブックを使用してインストールされているので、Tower のインストールを完了するには Ansible が必要です。

Ansible Tower バージョン 2.3.0 以降は、Ansible が自動的に設定プロセスでインストールされます。

以前のバージョン(2.3.0 以前) の Tower を使用している場合は、Ansible は http://docs.ansible.com/intro_installation.html にある Ansible ドキュメントの詳細のとおりにインストールしてください。

便宜上、これらのインストールの説明を以下に簡単にまとめています。

root@localhost:~$ yum install ansible

1.5.3. Ubuntu での Ansible の設定およびインストール

以下の手順は、リポジトリーへのアクセスの設定、以前のバージョンの Tower への Ansible のインストールに役立ちます。

1.5.3.1. リポジトリーアクセスの設定

root ユーザーで Ansible PPA を設定します。

root@localhost:~$ apt-get install software-properties-common
root@localhost:~$ apt-add-repository ppa:ansible/ansible

1.5.3.2. Ansible のインストール

注釈

Tower は Ansible プレイブックを使用してインストールされているので、Tower のインストールを完了するには Ansible が必要です。

Ansible Tower バージョン 2.3.0 以降は、Ansible が自動的に設定プロセスでインストールされます。

以前のバージョン(2.3.0 以前) の Tower を使用している場合は、Ansible は http://docs.ansible.com/intro_installation.html にある Ansible ドキュメントの詳細のとおりにインストールしてください。

便宜上、これらのインストールの説明を以下に簡単にまとめています。

root@localhost:~$ apt-get update
root@localhost:~$ apt-get install ansible

1.6. Tower のインストールシナリオ

Tower は、以下のシナリオの 1 つを使用してインストールすることができます。

単一マシン:

  • 統合インストールとして:
    • これは Tower を単一のマシンにインストールしたものです。Web フロントエンド、REST API バックエンド、データベースがすべて単一のマシンに含まれています。これは、Tower の標準インストールです。また、お使いの OS ベンダーリポジトリーから PostgreSQL もインストールされ、Tower サービスがデータベースとして使用するように設定されます。
  • 外部データベースの使用 (利用可能なオプションは 2 つ):
    • リモートの DB 設定のある Tower: この構成では、単一マシンに Tower サーバーをインストールし、Tower のデータベースとして、PostgreSQL 9.4.X のリモートのインスタンスと対話するように設定します。このリモートの PostgreSQL は自身で管理するサーバーを使用することも、Amazon RDS などのクラウドサービスで提供することも可能です。
    • プレイブックでインストールされたリモートの Postgres システムを含む Tower: この構成では、単一のマシンに Tower サーバーをインストールし、(Tower が管理する) プレイブックインストーラーでリモートの Postgres データベースをインストールします。

注釈

1). Tower は、設定済みの複製と連携することは可能ですが、お使いのデータベースの複製やフェイルオーバーの設定は行いません。2). データベースサーバーは、パフォーマンスの関係で Tower サーバーと同じネットワーク上、またはデータセンター内に配置する必要があります。

高可用性の複数マシンクラスター:

Tower は高可用性クラスターモードでインストールできます。このモードでは、複数の Tower ノードがインストールされ、アクティブ化されます。どのノードでも http 要求を受信でき、すべてのノードがジョブを実行することができます。

  • クラスター化された Tower の設定は、外部のデータベースでインストールする必要があります (利用可能なオプションは 2 つ)。
    • リモートの DB 設定のある Tower: この構成では、単一マシンに Tower サーバーをインストールし、Tower のデータベースとして、PostgreSQL のリモートのインスタンスと対話するように設定します。このリモートの PostgreSQL は自身で管理するサーバーを使用することも、Amazon RDS などのクラウドサービスで提供することも可能です。
    • プレイブックでインストールされたリモートの Postgres システムを含む Tower: この構成では、単一のマシンに Tower サーバーをインストールし、(Tower が管理する) プレイブックインストーラーでリモートの Postgres データベースをインストールします。
  • クラスター化の設定に関する情報は、「ag_highavailability」を参照してください。

注釈

クラスター設定で実行するには、Tower は外部のデータベースを使用する必要があります。Postgres はプライマリーまたはセカンダリーの Tower ノードではないマシンにインストールする必要があります。冗長設定の場合の要件として、リモートの Postgres バージョンは PostgreSQL 9.4.X でなければなりません。