全サーバに一気にコマンド叩きたいときにめっちゃ便利。

今回はこのシーン。zabbixに独自itemを追加したとき。これ、全サーバにitemを配置して zabbix-agent を再起動しないといけない。

業務ではubuntuだけ、とかcent6だけ、とか叩きたいシーンが多いのであらかじめ /etc/ansible/hosts にそういうグループを作っておく。これだけでいろんな調査がめっちゃはかどる。

ubuntu:
  hosts:
    host1:
    host2:
cent6:
  hosts:
    host3:
    host4:
cent7:
  hosts:
    host5:
    host6:

テストはこのコマンド

      ansible all --list-hosts            # 勝手にgroupのhostsが all にまとまってくれる
      ansible ubuntu --list-hosts

Childrenにするのがいいのか親にするのがいいのかはよくわかってない。

で、これを叩くと、一発でzabbix itemが動き始める!

zabbixにitem追加した時に叩くヤツ

全サーバ一気に更新&zabbix-agent再起動

ansible all  -a "bash -c 'cd /tools && git pull --ff-only && git push && update-zabbix-item'"
ansible cent6 -a "service zabbix-agent restart"
ansible "ubuntu cent7" -a "systemctl restart zabbix-agent"

update-zabbix-item は独自コマンドで、 /tools にいるitem用conf/shをzabbixが使うdirにln -s して chmod +x してくれるやつです。

もちろんリスタートするまでをshにしてしまってもいいんだけど、こうして対象サーバ群を便利に変えられるのがansibleのすごいところなので、しばらくこんな感じで使ってみようと思います。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.