Tower サーバーのエラーは /var/log/tower
にロギングされます。supervisor ログは /var/log/supervisor/
に、Nginx web サーバーのエラは httpd エラーログに記録されます。その他の Tower ロギングの設定は /etc/tower/conf.d/
で行うようにしてください。
大半のブラウザーに組み込まれている JavaScript コンソールを使用してクライアント側の問題をチェックし、Red Hat カスタマーポータル (https://access.redhat.com/) 経由で Ansible にエラーを報告してください。
ホストの接続エラーが原因で、クイックスタートガイドからの helloworld.yml
のサンプルの Playbook やその他の Playbook を実行できない場合は、以下をお試しください。
ssh
接続できますか? Ansible では、管理するサーバーに SSH でアクセスできる必要があります。Ansible Tower は Tower サーバー上のポート 80/443 を使用して Playbook やその他のライブ更新をクライアントのブラウザーにストリーミングします。これらのポートは、デフォルトで 80/443 に設定されていますが、ファイアウォールでブロックされていたり、以前の Websocket ポート用に解放または追加するファイアウォールルールを削除して、ファイアウォールでこのポートへのトラフィックが許可されているようにします。
Playbook のエラーが原因で、クイックスタートガイドからの helloworld.yml
のサンプルの Playbook やその他の Playbook を実行できない場合は、以下をお試しください。
--user=username
または -u username
コマンドを指定してユーザーを指定してください。yamlint
を使用して Playbook を確認してください。詳しい情報は、http://docs.ansible.com/YAMLSyntax.html で YAML 入門を参照してください。-
で始まるアイテムは、リストアイテムまたはプレイとみなされます。key: value
形式のアイテムは、ハッシュまたはディクショナリーとして機能します。-
プレイが多すぎたり、抜けていたりしないように確認してください。Playbook からのジョブの実行で問題がある場合には、Playbook の YAML ファイルを確認するようにしてください。ソース管理メカニズムを使用するか手動で Playbook をインポートする際に、Tower がホストの定義を管理しており、ホスト定義が hosts: all
に設定されている必要があります。
Playbook がジョブテンプレートのドロップダウンリストに表示されない場合は、以下に記載の内容を複数確認してください。
chown awx -R /var/lib/awx/projects/
Playbook のジョブの実行を試行して、「保留中で」止まる場合、以下を試行してください。
supervisorctl status
経由で実行されていることを確認します。/var/
のパーティションに 1 GB 以上の空き容量があることを確認します。/var/
パーティションに十分な容量がない場合にはジョブは完了しません。ansible-tower-service restart
を実行します。問題が継続する場合には Tower サーバーで root として sosreport
を実行してから、その結果を添付して サポートの依頼 をしてください。
実行中の Tower ジョブに cancel
要求を発行すると、Tower は ansible-playbook
プロセスに SIGINT
を発行します。これが原因で Ansible が新規タスクのディスパッチを停止して終了してしまいますが、リモートホストにディスパッチされたモジュールタスクは多くの場合、完了まで実行されます。この動作は、Ansible のコマンドラインを実行中に Ctrl-C
を押す操作とよく似ています。
ソフトウェアの依存関係に関しては、実行中のジョブがキャンセルされた場合、曽於ジョブは基本的には削除されますが、依存関係は残ります。
HA インストールを 2 回目以降に実行した場合に外部 DB を再利用するとインストールが失敗してしまう件が報告されています。
たとえば、HA のインストールを実行して、もう一度インストールし直し、同じ外部データベースを再利用して 2 つ目の HA インストールを実行したとします。その場合に、この 2 回目のインストールのみが失敗します。
以前のインストールで使用した外部 HA データベースを設定する場合は、追加のインストールを正常に完了できるように HA データベースを手動で消去する必要があります。
Ansible Tower の bubblewrap 機能により、Tower ファイルシステムのどのディレクトリーが Playbook に表示され、また Playbook の実行時に使用できるかを制限します。場合によっては bubblewrap 設定をカスタマイズする必要がある場合もあります。bubblewrap の使用を微調整するには、設定可能な変数がいくつかあります。
デフォルトでは、Tower はシステムの tmp
ディレクトリー (デフォルト設定: /tmp
) をステージングエリアとして使用します。これは、タワーの設定画面の Job Isolation Execution Path フィールドか、設定ファイルの以下のエントリーを更新することで変更できます。
AWX_PROOT_BASE_PATH = "/opt/tmp"
システム上に機密で非表示にすべきその他の情報がある場合には、Paths to Hide to Isolated Jobs の Tower の設定画面または、設定ファイルの以下のエントリーを更新して指定してください。
AWX_PROOT_HIDE_PATHS = ['/list/of/', '/paths']
特に公開する必要のあるディレクトリーがある場合には、Paths to Expose to Isolated Job の Tower の設定画面または、設定ファイルの以下のエントリーを更新して指定してください。
AWX_PROOT_SHOW_PATHS = ['/list/of/', '/paths']
注釈
Playbook が
/var/lib/awx/.ssh
で定義された鍵や設定を使用する必要がある場合には、/var/lib/awx/.ssh
を主要ファイルとして、AWX_PROOT_SHOW_PATHS
に追加してください。
設定ファイルに変更を加えた場合には、変更の保存後に ansible-tower-service restart
コマンドを使用してサービスを再起動するようにしてください。
デフォルトでは、Tower は Elastic IP (EIP) が関連付けられた VPC にだけインスタンスを表示します。VPC インスタンスすべてを表示するには、以下の手順を実行してください。
ソース変数
ボックスで以下を入力します。vpc_destination_variable: private_ip_address
次に、保存して、グループの更新をトリガーします。これが完了したら、すべての VPC インスタンスを表示できるはずです。
注釈
インスタンスを設定する場合には、Tower は、インスタンスへのアクセス権がある VPC 内で実行されている必要があります。
Tower で Playbook を実行しようとすると “Skipping: No Hosts Matched” のメッセージが表示された場合に、以下のように確認する点が複数あります。
これらのオプションを確認した後にも問題が継続する場合には、サポートチケットを起票してください。