Documentation

3. インストール時の一般的な注意点

  • RHEL 8 に Ansible Tower をインストールするには、 Ansible 2.8 以降が 必要です。これ以前の Ansible は RHEL 8 では機能しません。

  • HTTP プロキシーにアクセスして OS ベンダーからのソフトウェアをインストールする必要がある場合には、setup.sh を実行する前に環境変数「HTTP_PROXY」が適切に設定されていることを確認してください。

  • Tower インストーラーは、HTTPS 通信ができるように自己署名の SSL 証明書と鍵ファイルを /etc/tower/tower.cert/etc/tower/tower.key に作成します。これらは、インストール後に任意で独自のカスタム SSL 証明書と置き換えることができますが、ファイル名は同じままにしておく必要があります。

  • Ansible Tower 3.7 をインストールすると、自動的に、Tower ユーザーインターフェースの実行に必要な Node.js のバージョンがインストールされます。

  • Ansible Tower v3.7.1 以降をインストールすると、RHEL 7.7 に同梱されているものよりも新しいバージョンの rsyslog がインストールされます。詳細は、『Ansible Tower Administration Guide ガイド』の「Tower のロギングおよびアグリゲーション」セクションを参照してください。

  • Ansible バージョン 1.8 以降を使用する場合には、Tower マシンの ansible.cfg で、Redis を使用したファクトキャッシュが無効になっていることを確認してください。

  • Tower は、Ansible のソフトウェアリポジトリーや OS ベンダーのソフトウェアリポジトリーなど、信頼済みのサードパーティーが提供するソフトウェアをインストールできるようにインターネット接続のあるマシンからインストールを行う必要があります。場合によっては、Python Package Index (PyPI) にアクセスする必要があります。インターネット接続のない環境でインストールする必要がある場合は、バンドルのインストールプログラムは推奨のソリューションではありません (「バンドルの Tower インストールプログラムの使用」参照)。Red Hat カスタマーポータル (https://access.redhat.com/) 経由で Ansible までお問い合せください。

  • OpenShift に Tower をインストールする場合は、「OpenShift Deployment and Configuration」を参照してください。

3.1. Tower で指定するフラグおよび追加の変数

Ansible Tower インストーラーで使用可能なフラグや追加の変数には以下が含まれます (ただし、以下に限定されません)。

Usage: setup.sh [Options] [-- Ansible Options]

Options:
  -i INVENTORY_FILE     Path to ansible inventory file (default: inventory)
  -e EXTRA_VARS         Set additional ansible variables as key=value or YAML/JSON
                        i.e. -e bundle_install=false will force an online install

  -b                    Perform a database backup in lieu of installing
  -r                    Perform a database restore in lieu of installing
  -k                    Generate and distribute a new SECRET_KEY

  -h                    Show this help message and exit

Ansible Options:
  Additional options to be passed to ansible-playbook can be added following the -- separator

-- の区切り文字を使用して、適用する Ansible 引数を追加します。例: ./setup.sh -i my_awesome_inventory.yml -e matburt_is_country_gold=True -- -K

以下の表では、Tower のインストール中に使用可能な追加変数を紹介します。

変数

説明

デフォルト

upgrade_ansible_with_tower

Tower のインストール時には、Ansible が最新の状態であることを確認します。

False

create_preload_data

Tower のインストール時に、デモ組織、プロジェクト、認証情報、ジョブテンプレートなども作成します。

True

bundle_install_folder

バンドルからインストールする場合に、バンドルされているリポジトリーを配置する場所

/var/lib/tower-bundle

nginx_disable_https

nginx で HTTPS トラフィックを無効化します。HTTPS の負荷をロードバランサーに分散する場合に便利です。

False

nginx_http_port

nginx が HTTP をリッスンするように設定するポート

80

nginx_https_port

nginx が HTTPS をリッスンするように設定するポート

443

backup_dest

setup.sh -b からのバックアップを配置する場所

{{ playbook_dir }}

backup_dir

バックアップ時に使用する一時的な場所

/var/backups/tower/

restore_backup_file

復元元として使用する別のバックアップファイルを指定します。

(なし)

required_ram

Tower のインストールに必要な最小メモリー (テストインストール時のみ変更してください)

3750

min_open_fds

表示ファイルの説明に使用できる最小リソース (テストインストール時のみ変更してください)

4096

ignore_preflight_errors

プリフライトチェックを無視します。これはテンプレートや他のシステム以外のイメージにインストールするときに便利です (required_rammin_open_fds をオーバーライドします)

False

3.1.1.

以下は一般的なシナリオ例です。個別のケースに適した値を指定するようにしてください。

  • **コアをアップグレードする方法*:

    ./setup.sh -e upgrade_ansible_with_tower=1
    
  • nginx で処理する https を無効化する方法:

    ./setup.sh -e nginx_disable_https=true
    
  • バックアップファイルから復元時にデフォルトではないパスを指定する方法:

    ./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
    
  • 設定スクリプトに引数として渡すことで使用したインベントリーファイルを上書きする方法:

    setup.sh -i <inventory file>
    

3.2. インストールに関する追加のヒント

Websocket 設定を nginx/ロードバランサー設定に合わせるために、Ansible Tower のインストールの一部としてプロキシーおよび Websockets を設定する方法を検討してください。詳細は、本ガイドの「ag_proxy_support」セクションを参照してください。

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

3.2.1.1. FIPS モードを有効にしたシステムへの Tower のインストール

Tower は、留意すべき制限事項がいくつかありますが、FIPS モードが有効なシステムで実行できます。

  • Enterprise Linux 7 以降のみがサポートされています。Ansible Tower を FIPS モードで機能させるには、RHEL に同梱されている標準の Python を使用する必要があります。標準以外の Python を使用すると、Tower のシステム以外の Python もサポートされません。

  • デフォルトでは、Tower はパスワードベースの認証を使用して PostgreSQL を設定します。インストール時に CREATE USER を実行している場合は、このプロセスに md5 を使用している必要があります。FIPS 対応システムから Tower インストーラーを実行するには、インベントリーファイルで pg_password を指定します。セットアップが失敗する場合があるため、pg_password で特殊文字を 使用しないでください

    pg_password='choose-a-password'
    

    詳細については、「インベントリーファイルの設定」を参照してください。

    インストーラーのインベントリーファイルでパスワードを指定した場合 (pg_password) に、このパスワードは、インストールプロセスの一部として PostgreSQL により SCRAM-SHA-256 にハッシュ化されます。

  • ssh-keygen コマンドは、RFC4716 形式のキーを生成し、プロセスの特定の時点で (入力したパスフレーズに実行する変換の一部として) md5 ダイジェストアルゴリズムを使用します。FIPS が有効なシステムでは md5 が完全に無効になっているため、このタイプの暗号化された SSH キー (パスフレーズで保護されている RFC4716 プライベートキー) は使用できません。FIPS モードが有効な場合、Ansible Tower にインポートする暗号化された SSH キーは、PKCS8 形式のキーを 使用する必要があります。既存の AES128 キーは、以下の openssl コマンドを使用して PKCS8 に変換できます:

    $ openssl pkcs8 -topk8 -v2 aes128 -in <INPUT_KEY> -out <NEW_OUTPUT_KEY>
    

詳細は、https://access.redhat.com/solutions/1519083 を参照してください。

  • paramiko ライブラリーを使用する Ansible 機能を使用すると、FIPS に準拠しなくなります。たとえば、トランスポートとしての ansible_connection=paramiko の設定や ncclient NETCONF ライブラリーを使用するネットワークモジュールの使用などです。

  • TACACS+ プロトコルは md5 を使用して認証パケットのコンテンツを難読化します。FIPS モードが有効なシステムでは、「TACACS+ Authentication」はサポートされません。

  • RADIUS プロトコルは、md5 を使用して Access-Request クエリーのパスワードを暗号化します。「RADIUS Authentication」は、FIPS モードが有効なシステムではサポートされません。

3.2.1.2. Red Hat Enterprise Linux と CentOS の設定に関する注意事項

  • Ansible Tower を RHEL 8 で実行するには、Ansible 2.8 以降をインストールする必要があります。RHEL 8 がサポートするのは、Ansible 2.8 以降のバージョンです。

  • Ansible Tower 3.5 以降では Tower は Python 3 を使用して稼働します。Python 3 は、Tower インストール時に RHEL 8 に自動的にインストールされます。

  • PackageKit は頻繁に、インストール/更新メカニズムを干渉する可能性があります。設定プロセスの実行前にインストールする場合は、PackageKit を無効または削除することを検討してください。

  • "targeted" の SELinux ポリシーのみがサポートされます。targeted ポリシーは、disabled、permissive または enforcing に設定可能です。

  • バンドルインストールを行う場合の詳細は、「バンドルの Tower インストールプログラムの使用」を参照してください。

  • Ansible Tower のインストール時には、setup.sh のみを実行するだけで結構です。Tower で必要なリポジトリーは自動的にインストールされます。

  • 設定プロセス時に、最新版の Ansible が自動的にインストールされ、追加のインストールや設定は必要ありません。

3.2.1.3. Ubuntu の設定に関する注意

Ansible Tower では、Ubuntu のサポートがなくなりました。Ubuntu の詳細は、以前のバージョンの Ansible Tower Installation and Reference Guide を参照してください。

3.2.1.4. OpenShift での設定およびインストール

OpenShift ベースのデプロイメントについては、「OpenShift Deployment and Configuration」を参照してください。