Tower は、Amazon AWS、Google Compute Engine、Rackspace などのクラウドソースから動的にインベントリーを同期するサポートが含まれています。また、Tower には、カスタムスクリプトを使用して独自のインベントリーソースからプルする機能もあります。
注釈
Ansible Tower 2.4.0 リリースでは、--overwrite_vars
が 設定されていない限り、インベントリーホスト変数への編集や追加はインベントリーの同期後も永続されるようになりました。インベントリーの同期を以前と同じように動作させるには、--overwrite
と --overwrite_vars
の両方を設定する必要があります。
Tower で利用可能なカスタムインベントリースクリプトを管理するには、設定 () メニューから インベントリースクリプト を選択します。
新しいカスタムインベントリースクリプトを追加するには、 ボタンをクリックします。
スクリプト名と説明 (任意) を入力し、このスクリプトが所属する 組織 を選択します。
ローカルシステムのスクリプトを カスタムスクリプト テキストボックスにドラッグアンドドロップするか、そこにインベントリースクリプトの内容をカットアンドペーストしてください。
インベントリースクリプトは、Tower マシン (シェルまたは python など) にインストール済みの動的言語で記述することができます。#!/bin/bash
または #!/usr/bin/python
などの通常の #! (シバン) のスクリプト行で開始する必要があります。また、awx
ユーザーで実行します。インベントリースクリプトは、呼び出しインベントリーを表示する '--list'
で呼び出すと、JSON hash/dictionary で返されます。
一般的に、ネットワークに接続して、他のソースからインベントリーを取得します。マルチテナントセキュリティーを有効にしている場合は (詳細は ref:Security <userguide:ug_security> を参照)、インベントリースクリプトは Tower マシンの大部分にアクセスできません。ローカルの Tower マシン内にアクセスする必要がある場合には、/etc/tower/settings.py
で設定します。
動的なインベントリースクリプトと記述方法の詳しい情報は、Ansible ドキュメントの Intro to Dynamic Inventory および Developing Dynamic Inventory Sources セクションを参照するか、GitHub の example dynamic inventory scripts を確認してください。