てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] Hackey でイルミネーションをつくる

はじめに

Hackeyという、カギをひねると HTTP をしゃべる機器があります。

cerevo.com

この機器のもう一つの機能として、内蔵の5色の LED を光らせるというものがあります。 HTTP GET を叩いて光らせるので、curl でも何でもいいのですが、たまたま手元にあった Ansible から叩くことにします。


Hackey 側の設定

Hackey の管理画面で、光らせたい色の設定を行います。それぞれに URL が発行されます。

f:id:akira6592:20191224215457p:plain
LED 通知の設定


Playbook

uri モジュールを利用します。デフォルトのメソッドは GET です。

vars で各色を光らせる URL を定義して、loop で回しています。本当は無限に回したかったのですが、分からなかったのでリストを * 9999 で引き伸ばしています。

pause でループを回す秒数を指定します。

- hosts: localhost
  gather_facts: no
  connection: local

  tasks:
    - name: illumination
      uri:
        url: "{{ item.url }}"
      loop: "{{ color_list * 9999 }}"
      loop_control:
        pause: 1
        label: "{{ item.color }}"

  vars:
    color_list:
      - color: green
        url: http://hackey-app.cerevo.com/api/v1/blink/xxx_dummy1_xxx
      - color: orange
        url: http://hackey-app.cerevo.com/api/v1/blink/xxx_dummy2_xxx
      - color: purple
        url: http://hackey-app.cerevo.com/api/v1/blink/xxx_dummy3_xxx
      - color: red
        url: http://hackey-app.cerevo.com/api/v1/blink/xxx_dummy4_xxx
      - color: blue
        url: http://hackey-app.cerevo.com/api/v1/blink/xxx_dummy5_xxx


実行結果

$ ansible-playbook -i losthost, illumination.yml 

PLAY [localhost] *************************************************************************************************************

TASK [illumination] **********************************************************************************************************
ok: [localhost] => (item=green)
ok: [localhost] => (item=orange)
ok: [localhost] => (item=purple)
ok: [localhost] => (item=red)
ok: [localhost] => (item=blue)
ok: [localhost] => (item=green)
ok: [localhost] => (item=orange)
ok: [localhost] => (item=purple)
...(略)...


さいごに

ありがとうございました。

参考

カギをひねる方の使いみち

f:id:akira6592:20171217111404p:plain:w400
www.youtube.com