Documentation

3. カスタムインベントリースクリプト

注釈

インベントリースクリプトは Ansible Tower Version 3.6.0 では非推奨です。

_images/api_inventory_script_deprecation.png

カスタムインベントリースクリプトを使用する場合は、プロジェクトからこれらのスクリプトを取得するように移行してください。次のセクションの「インベントリーファイルのインポート」を確認してください。詳細については Ansible Tower User Guide の「認証情報ソース」も参照してください。

Tower は、Amazon AWS、Google Compute Engine などのクラウドソースから動的にインベントリーを同期するサポートが含まれています。また、Tower には、カスタムスクリプトを使用して独自のインベントリーソースからプルする機能もあります。

注釈

Ansible Tower 2.4.0 リリースでは、--overwrite_vars設定されていない場合に、インベントリーホスト変数への編集や追加がインベントリー同期後も永続化するようになりました。インベントリーの同期を以前と同じように動作させるには、--overwrite--overwrite_vars の両方を設定する必要があります。

Tower で利用可能なカスタムインベントリースクリプトを管理するには、左側のナビゲーションバーからインベントリースクリプト ( inv-scripts ) を選択します。

Inventory scripts

新しいカスタムインベントリースクリプトを追加するには、add ボタンをクリックします。

Inventory scripts - create new

スクリプト名と説明 (任意) を入力し、このスクリプトが所属する 組織 を選択します。

ローカルシステムのスクリプトを カスタムスクリプト テキストボックスにドラッグアンドドロップするか、そこにインベントリースクリプトの内容をカットアンドペーストしてください。

Inventory scripts - created

3.1. インベントリースクリプトの記述

インベントリースクリプトは、Tower マシン (シェルまたは python など) にインストール済みの動的言語で記述することができます。#!/bin/bash または #!/usr/bin/python などの通常の #! (シバン) のスクリプト行で開始する必要があります。また、awx ユーザーで実行します。インベントリースクリプトは、呼び出しインベントリーを表示する '--list' で呼び出すと、JSON hash/dictionary で返されます。

一般的に、ネットワークに接続して、他のソースからインベントリーを取得します。マルチテナントセキュリティーを有効にしている場合は (詳細は Security を参照)、インベントリースクリプトは Tower マシンの大部分にアクセスできません。ローカルの Tower マシン内にアクセスする必要がある場合には、/etc/tower/conf.d/custom.py で設定します。

動的インベントリースクリプトとその記述方法に関する情報は、Ansible ドキュメントの Intro to Dynamic Inventory および Developing Dynamic Inventory Sources セクションを参照するか、GitHub の example dynamic inventory scripts を確認してください。