Ansible Automation Platform は、お使いの環境に最適なモードを選択し、インベントリーファイルに必要な変更を加えることで、さまざまな方法でインストールできます。OpenShift ベースのデプロイメントでは、OpenShift に Tower のみのデプロイできます。OpenShift への Automation Hub のデプロイメントはサポートされませんが、OpenShift を参照する仮想環境に Automation Hub をデプロイできます。詳細は、「OpenShift Deployment and Configuration」を参照してください。
Ansible Automation Platform は、以下のシナリオのいずれかを使用してインストールすることができます。
単一マシン:
Tower または非インストーラー管理データベースと同じノード上にデータベースがあるスタンドアロン Tower。これは Tower を単一のマシンにインストールしたものです。Web フロントエンド、REST API バックエンド、データベースがすべて単一のマシンに含まれています。これは、Tower の標準インストールです。また、お使いの OS ベンダーリポジトリーから PostgreSQL もインストールされ、Tower サービスがデータベースとして使用するように設定されます。
[tower]
host
外部管理データベースを備えたスタンドアロン Tower。この構成では、単一マシンに Tower サーバーをインストールし、Tower のデータベースとして、PostgreSQL 10 のリモートのインスタンスと対話するように設定します。このリモートの PostgreSQL には自身で管理するサーバーを使用することも、Amazon RDS などのクラウドサービスで提供することも可能です。
[tower]
host
[database]
host2
Automation Hub または非インストーラー管理データベースと同じノードにあるデータベース付きのスタンドアロン Automation Hub:
[automationhub]
host
外部管理データベースを使用するスタンドアロン Automation Hub: この構成では、単一のマシンに Automation Hub サーバーをインストールし、(Automation Platform インストーラーが管理する) Playbook インストーラーでリモートの PostgreSQL データベースをインストールします。
[automationhub]
host
[database]
host2
プラットフォームのインストール:
プラットフォームのインストールには Tower と Automation Hub が関与します。Platform インストーラーを使用すると、インベントリーごとに Automation Hub を 1 つだけデプロイできます。インストーラーを Automation Hub スタンドアロンインストーラーとして使用し、複数の Automation Hub ノードをデプロイする場合は、インストーラーを任意の数の異なるインベントリーで何度でも実行できます。プラットフォームインストールでサポートされている 2 つのオプションは次のとおりです。
Tower とまたは非インストーラー管理データベースと同じノード上のデータベースを使用するプラットフォーム (タワー + Automation Hub):
[tower]
host1
[automationhub]
host2
外部管理データベースを使用するプラットフォーム (Tower + Automation Hub) の場合:
[tower]
host1
[automationhub]
host2
[database]
host3
マルチマシンクラスター
このシナリオには、外部管理データベースを使用したプラットフォーム (クラスター化されたタワー + Automation Hub) インストールに関与します。このモードでは、複数の Tower ノードがインストールされてアクティブになります。すべてのノードが HTTP リクエストを受け取れるようになり、すべてのノードがジョブを実行できます。これにより、プラットフォームサーバーが単一のマシンにインストールされ、データベースとして PostgreSQL のリモートインスタンスと対話するように構成されます。このリモート PostgreSQL は、管理するサーバーにすることも、Amazon RDS などのクラウドサービスによって提供することもできます。
[tower]
host1
host11
host12
[automationhub]
host2
[database]
host3
注釈
クラスター設定で実行するには、Tower は外部のデータベースを使用する必要があります。PostgreSQL はプライマリーまたはセカンダリーの Tower ノードではないマシンにインストールする必要があります。冗長設定の場合の要件として、リモートの PostgreSQL バージョンは PostgreSQL 10 でなければなりません。
クラスター化の設定に関する情報は、「クラスタリング」を参照してください。
注釈
1). Tower will not configure replication or failover for the database that it uses, although Tower should work with any replication that you have. 2). The database server should be on the same network or in the same datacenter as the Tower server for performance reasons. 3). Tower and Automation Hub can not run on the same node, this is a scenario that is not supported. It means that any deployment of the Platform becomes at least a 2-node deployment topology.
Automation Platform インストールに利用可能な設定:
automationhub_importer_settings
: galaxy-importer
に渡す設定/構成のディクショナリー。これは、最終的に /etc/galaxy-importer/galaxy-importer.cfg
に保存されます。
automationhub_require_content_approval
: コレクションが利用可能になる前に、Automation Hub が承認メカニズムを実施するかどうか。
automationhub_disable_https
: TLS を有効にして Automation Hub をデプロイする必要があるかどうか。
automationhub_disable_hsts
: Transport Security (HSTS) Web セキュリティーポリシーメカニズムを有効にして Automation Hub をデプロイする必要があるかどうか。
automationhub_ssl_validate_certs
: Platform は、デフォルトで自己署名証明書を使用してデプロイするため、Automation Hub は、自身を要求するときに証明書を検証する必要があるかどうか (デフォルト= False)。
automationhub_ssl_cert
: web_server_ssl_cert
と同じですが、Automation Hub の UI および API で使用。
automationhub_ssl_key
: web_server_ssl_key
と同じですが、Automation Hub の UI および API で使用。
automationhub_backup_collections
: Automation Hub は /var/lib/pulp
にアーティファクトを提供します。デフォルトでは、これは true
に設定されています。そのため、Tower はデフォルトでアーティファクトを自動的にバックアップします。パーティション (LVM、NFS、CephFS など) がそこにマウントされている場合、企業組織はそれが常にバックアップされることを保証します。この場合は、automationhub_backup_collections = false
を設定して、バックアップ/復元プロセスで /var/lib/pulp
をバックアップ/復元する必要はありません。
OpenShift ベースのデプロイメントについては、「OpenShift Deployment and Configuration」を参照してください。
インベントリーファイルの編集時には、複数の点を念頭に置く必要があります。
インベントリーファイルの内容は ./setup.sh
インストーラー Playbook の隣りにある ./inventory
で定義する必要があります。
インストールおよびアップグレード: 外部データベースを使用する必要がある場合には、インベントリーファイルのデータベースのセクションが正しく設定されていることを確認する必要があります。このファイルを編集して、外部データベースの情報を追加してから設定スクリプトを実行してください。
Ansible Automation Platform または Automation Hub: [automationhub] グループに自動化ハブホストを追加するようにしてください (Tower と Automation Hub は同じノードにインストールできません)。
Tower は、使用しているレプリケーションと連携しますが、使用するデータベースのレプリケーションやフェイルオーバーを構成しません。
パフォーマンス上の理由から、データベースサーバーは、Tower サーバーと同じネットワーク上または同じデータセンターに置く必要があります。
既存クラスターをアップグレード する場合: クラスターのアップグレード時に、既存のインスタンスやインスタンスグループを除いて、クラスターを再設定する場合があります。インベントリーファイルからインスタンスやインスタンスグループを削除しても、クラスターからインスタンスやインスタンスグループは削除されません。インベントリーファイルからインスタンスやインスタンスファイルを削除するだけでなく、アップグレード前に、「deprovision instances or instance groups」する必要があります。プロビジョニングを解除しなければ、削除したインスタンスまたはインスタンスグループは、クラスターへの通信を継続し、アップグレード時に Tower のサービスで問題が発生する可能性があります。
クラスターインストール: クラスター設定を作成する場合には、localhost
は全インスタンスのホスト名または IP アドレスに置き換える必要があります。ノード/インスタンスはすべて、このホスト名やアドレスを使用して他のノードやインスタンスに到達する必要があります。つまり、ノードでは localhost ansible_connection=local
を使用できず、かつ 全ノードはホスト名と同じ形式を使用する必要があります。
このように、以下は*機能しません*。
[tower]
localhost ansible_connection=local
hostA
hostB.example.com
172.27.0.4
代わりに以下の形式を使用します。
[tower]
hostA
hostB
hostC
または
[tower]
hostA.example.com
hostB.example.com
hostC.example.com
または
[tower]
172.27.0.2
172.27.0.3
172.27.0.4
全標準インストール: インストールを実行する際には、インベントリーファイルに必要なパスワードを提示する必要があります。
注釈
インストールプロセスに変更を加えるには、インベントリーファイルのパスワードフィールドをすべて入力する必要があります。この値は以下で確認できます。
admin_password=''
<--- Tower のローカルの管理者パスワード
pg_password=''
<---- /etc/tower/conf.d/postgres.py にあります。
警告
pg_password
で特殊文字を使用しないでください。セットアップが失敗する場合があります。
新規ノードのプロビジョニング: 新規ノードのプロビジョニングの際には、現在のノードすべてを使用してインベントリーファイルにノードを追加し、すべてのパスワードがインベントリーファイルに含まれていることを確認してください。
単一ノードのアップグレード: アップグレード時には、インベントリーファイルと現在のリリースバージョンを比較するようにしてください。アップグレードを実行する際でも、ここにパスワードを保存することを推奨します。
[automationhub]
automationhub.acme.org
[all:vars]
automationhub_admin_password='<password>'
automationhub_pg_host=''
automationhub_pg_port=''
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='<password>'
automationhub_pg_sslmode='prefer'
# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key
[tower]
tower.acme.org
[automationhub]
automationhub.acme.org
[database]
database-01.acme.org
[all:vars]
admin_password='<password>'
pg_host='database-01.acme.org'
pg_port='5432'
pg_database='awx'
pg_username='awx'
pg_password='<password>'
pg_sslmode='prefer' # set to 'verify-full' for client-side enforced SSL
# Automation Hub Configuration
#
automationhub_admin_password='<password>'
automationhub_pg_host='database-01.acme.org'
automationhub_pg_port='5432'
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='<password>'
automationhub_pg_sslmode='prefer'
# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# Isolated Tower nodes automatically generate an RSA key for authentication;
# To disable this behavior, set this value to false
# isolated_key_generation=true
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in nginx for the web UI and API
# web_server_ssl_cert=/path/to/tower.cert
# web_server_ssl_key=/path/to/tower.key
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key
# Server-side SSL settings for PostgreSQL (when we are installing it).
# postgres_use_ssl=False
# postgres_ssl_cert=/path/to/pgsql.crt
# postgres_ssl_key=/path/to/pgsql.key
[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='password'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='password'
警告
pg_password
で特殊文字を使用しないでください。セットアップが失敗する場合があります。
[tower]
clusternode1.example.com
clusternode2.example.com
clusternode3.example.com
[database]
dbnode.example.com
[all:vars]
ansible_become=true
admin_password='password'
pg_host='dbnode.example.com'
pg_port='5432'
pg_database='tower'
pg_username='tower'
pg_password='password'
警告
pg_password
で特殊文字を使用しないでください。セットアップが失敗する場合があります。
[tower]
node.example.com ansible_connection=local
[database]
[all:vars]
admin_password='password'
pg_password='password'
pg_host='database.example.com'
pg_port='5432'
pg_database='awx'
pg_username='awx'
警告
pg_password
で特殊文字を使用しないでください。セットアップが失敗する場合があります。
[tower]
node.example.com ansible_connection=local
[database]
database.example.com
[all:vars]
admin_password='password'
pg_password='password'
pg_host='database.example.com'
pg_port='5432'
pg_database='awx'
pg_username='awx'
警告
pg_password
で特殊文字を使用しないでください。セットアップが失敗する場合があります。
必要な変更を加えたら、./setup.sh
の準備が整います。
注釈
リモートマシンには root アクセスが必要です。Ansible では、複数の方法で実行できます。
ansible_user=root ansible_ssh_pass="your_password_here" inventory host or group variables
ansible_user=root ansible_ssh_private_key_file="path_to_your_keyfile.pem" inventory host or group variables
ANSIBLE_BECOME_METHOD='sudo' ANSIBLE_BECOME=True ./setup.sh
ANSIBLE_SUDO=True ./setup.sh (対象は Ansible 2.7 のみ)
DEFAULT_SUDO
Ansible 設定パラメーターは Ansible 2.8 で削除されたため、昇格された権限での ANSIBLE_SUDO=True ./setup.sh
メソッドが機能しなくなりました。become
プラグインに関する詳細は、「Understanding Privilege Escalation」と「list of become plugins」を参照してください。
Tower の設定 Playbook のスクリプトでは inventory
ファイルが使用され、Tower インストーラーの tarball を展開したパスから ./setup.sh
として呼び出されます。
root@localhost:~$ ./setup.sh
設定スクリプトでは以下の引数を指定できます。
-h
: ヘルプメッセージを表示して終了します。
-i INVENTORY_FILE
: Ansible インベントリーファイルへのパス (デフォルト値: inventory
)
-e EXTRA_VARS
: 追加の Ansible 変数を key=value または YAML/JSON (つまり -e bundle_install=false
は強制的にオンラインインストールを実行します) として設定します。
-b
: インストールの代わりにデータベースのバックアップを実行します。
-r
: インストールの代わりにデータベースの復元を実行します (以下のコード例に記載されているように、EXTRA_VARS でデフォルト以外のパスを指定しない限り、デフォルトの復元パスが使用されます)。
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r
適切なパラメーターで ./setup.sh
を呼び出すと、Tower は設定どおりに適切なマシンにインストールされます。Setup シェルは、ansible.com でホストされているリポジトリーを使用して、RPM パッケージから Tower をインストールします。
設定が完了したら、お使いの Web ブラウザーを使用して Tower サーバーにアクセスでき、Tower のログイン画面が表示されます。Tower サーバーは、ポート 80 (https://<TOWER_SERVER_NAME>/) からアクセスできますが、ポート 443 にリダイレクトされるため、443 も利用できる状態にする必要があります。
Tower のインストールに失敗し、Ansible Tower の有効なライセンスを購入済みのお客様は、Red Hat カスタマーポータル (https://access.redhat.com/) から Ansible までお問い合せください。
インストールの完了後に SSH 経由で Tower インスタンスにログインすると、デフォルトの管理パスワードがプロンプトに提示されます。(root または AWS ユーザーとして) 以下のコマンドを使用して変更することができます。
awx-manage changepassword admin
その後は入力したパスワードが Web UI の管理者パスワードとして機能します。