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 バージョン 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_FILE})
        -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.
        -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_awesome=True -- -K

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. FIPS モードを有効にしたシステムへの Tower のインストール

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

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

  • デフォルトでは、Tower はパスワードベースの認証を使用して PostgreSQL を設定します。CREATE USER がインストール時に実行されている場合には、このプロセスでは md5 を使用している必要があります。FIPS が有効なシステムから Tower のインストーラーを実行する予定の場合は、インストール時に md5 ハッシュをご自身で事前にコンピュートし、「 インベントリーファイルの設定」で記載されているようにインベントリーファイルにその値を追加する必要があります。

    具体的には、FIPS を有効化 *せずに * システムでハッシュ化された値を事前にコンピュートする必要があります:

    $ python -c 'from hashlib import md5; print("md5" + md5("choose-a-password" + "awx").hexdigest())'
    md57d08dde7e95e862eaadfff09565e92e6
    

    さらに、インベントリーファイルで pg_passwordpg_hashed_password 両方 を指定します。

    pg_password='choose-a-password'
    pg_hashed_password='md57d08dde7e95e862eaadfff09565e92e6'
    
  • 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.3. 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 のインストール時には、 のみを実行するだけで結構です。Tower で必要なリポジトリーは自動的にインストールされます。
  • 設定プロセス時に、最新版の Ansible が自動的にインストールされ、追加のインストールや設定は必要ありません。

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

Ubuntu サポートは Ansible Tower 3.5 で非推奨になり、今後のリリースで削除予定です。Ubuntu に関する詳細は、Ansible Tower Installation and Reference Guide の以前のバージョンを参照してください。

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

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