はじめに
Hackeyという、カギをひねると HTTP をしゃべる機器があります。
この機器のもう一つの機能として、内蔵の5色の LED を光らせるというものがあります。 HTTP GET を叩いて光らせるので、curl でも何でもいいのですが、たまたま手元にあった Ansible から叩くことにします。
Hackey 側の設定
Hackey の管理画面で、光らせたい色の設定を行います。それぞれに URL が発行されます。
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) ...(略)...
イルミネーションです pic.twitter.com/8cNiTCpa7l
— よこち(yokochi) (@akira6592) 2019年12月24日
さいごに
ありがとうございました。
参考
カギをひねる方の使いみち