Ansible dynamic inventory + Zabbix APIで監視対象を動的に構成管理より
例えばローカルの/etc/hostsに存在するホスト名をinventoryとして使いたければ
inventory.sh #!/bin/bash HOSTS=$(cat /etc/hosts | grep -v ^# | awk '{print $2}') HOSTS=$(echo "$HOSTS" | sed -e 's/^\(.*\)$/"\1"/g') HOSTS=$(echo $HOSTS | sed -e 's/\s/,/g') echo "{\"all\": {\"hosts\": [$HOSTS]}}"
のようなスクリプトを書いて渡してやるだけでいい。
Dynamic Inventoryを使ってみるより
ansibleは、インベントリファイルに実行権限が付いていなければ、通常のインベントリファイルとして読み込み、
実行権限が付いていれば実行した結果帰ってくるjsonを読み込むという処理をしているよう。