一発ネタ。ワンライナーでDynamic Inventory
このままでは使えないですが、何かのヒントにはなるかもしれません。
GCPなんかで、AnsibleのDynamic Inventoryを使う場合、↓の公式ページによれば
http://docs.ansible.com/ansible/guide_gce.html#gce-dynamic-inventory
gcp.py
でやるのをオススメしてます。
が、Dynamic Inverntoryを実現するスクリプトを作るのは結構簡単です。
↓のルールを守って、JSON形式の標準出力でホスト一覧を返せばよいと。
Developing dynamic inventory — Ansible Documentation
このレベルであれば、gcloudコマンドとjqを組み合わせればあっさりいけそうな感じ。
#!/bin/sh gcloud compute instances list --format json --project project_name \ | jq 'map(select(.tags.items | any(. == "jenkins"))) | {jenkins:{hosts:map(.networkInterfaces[0].networkIP)}}'
とかでも動くっちゃ動く(冒頭でもいってますが、このままじゃ使えませんが・・・)
上記のコマンドで「タグにjenkinsを含むホストのインターナルIPを抜き出して整形」ができるという感じです。