gcp_compute を使ってAnsibleのグループを作成するTipsを載せておきます。
GCEの操作
GCEにラベルを付与する(コンソールでもコマンドでも)
ansible = true
env = development
orenv = stg
orenv = production
ラベルはなんでもよいし、値もなんでも良いので好きに設定してください。
inventory/gcp.yaml
plugin: gcp_compute projects: - xxx filters: - labels.ansible = "true" auth_kind: application keyed_groups: # Create groups from GCE labels - key: labels hostnames: # List host by name instead of the default public ip - name
先ほどつけたラベルでフィルタリングしたければしてください。(フィルタリングはマストではないです)
コマンド実行
ansible-inventory --graph -i inventory/gcp.yaml @all: |--@_ansible_true: | |--server1 | |--server2 | |--server3 |--@_env_stg: | |--server2 |--@_env_development: | |--server3 |--@_env_production: | |--server1 |--@ungrouped:
上記のように勝手にグループが分けられ、Ansibleで操作できるのが以下のグループ。
- all
- _ansible_true
- _env_stg
- _env_development
- _env_production
あとはこれを使うだけ!
ansible-playbook -l _env_stg
にして限定して実行するとかgroup_vars/_ansible_true.yaml
を作って変数を定義するとか