Documentation

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

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 を確認してください。