Transcript
Page 1: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

我々のIoTデバイスがこんなに多いはずが無い

Feb. 5, 2016CROSS 2016

@ma2shita

Page 2: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

こんばんは

Page 3: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

ソラコムの回し者です

Page 4: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

自己紹介松下 享平(まつした こうへい)

ぷらっとホーム株式会社業務統括部→ 謎の部署でIoTやってます

好きなSORACOM

昔: Terminate API

今: メタデータサービス

NEW

Page 5: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

10/19 Dev conf #0では

• SIMを開封してから5分でSMS受信

• 肉体芸

• 今回はちゃんとやります

前もちゃんとやってました

Page 6: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

14:10のパネル

ディスカッション登壇

Page 7: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

デバイスへのソフトウェア

デプロイの話題

Page 8: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

IoTって

Page 9: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

こうですよね?

センサー ゲートウェイ クラウド

Page 10: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

こうなりますよね?

センサー ゲートウェイ クラウド

Page 11: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

こうなりますよね?

センサー ゲートウェイ クラウド

Page 12: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

こうなるよな?

センサー ゲートウェイ クラウド

Page 13: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

大量デバイス

Page 14: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

_人人人人人人人人_> アップデート < ̄Y^Y^Y^Y^Y^Y^Y ̄

Page 15: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

どうする?

Page 16: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

目標をセンターに入れて

apt-get

Page 17: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

目標をセンターに入れて

apt-get

Page 18: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

やなせさん…(-人-)

Page 19: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

…空から声が…

Page 20: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

SORACOM Air

カスタムDNS

Page 21: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Dnsmasq (192.168.0.2)• apt-proxy.local = 10.0.0.5

Internetdig apt-proxy.localif [ $? = 0 ]; then apt-get update apt-get upgrade –yfi

Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

DNS Server= 192.168.0.2 apt-proxy.local

= 10.0.0.5

Group A• DNS Server = 192.168.0.2

apt-proxy.local (10.0.0.5)• apt-cacher-ng

Page 22: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Dnsmasq (192.168.0.2)• apt-proxy.local = 10.0.0.5

Internetdig apt-proxy.localif [ $? = 0 ]; then apt-get update apt-get upgrade –yfi

DNS Server= 192.168.0.2 apt-proxy.local

= 10.0.0.5

apt-proxy.local (10.0.0.5)• apt-cacher-ng

apt-cacher-ngで回線費用を安く、そして高速化

しかも2台目以降はもっと高速

Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

Page 23: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Dnsmasq (192.168.0.2)• apt-proxy.local = 10.0.0.5

Internetdig apt-proxy.localif [ $? = 0 ]; then apt-get update apt-get upgrade –yfi

DNS Server= 192.168.0.2 apt-proxy.local

= 10.0.0.5

apt-proxy.local (10.0.0.5)• apt-cacher-ng

スクリプト終盤で

curl –s http://metadeta.soracom.io/v1/subscriber/unset_group

グループ解除すれば次回はapt-getが走らない

Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

Page 24: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

_人人人人人人人人_> やったね! < ̄Y^Y^Y^Y^Y^Y^Y ̄

Page 25: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

じゃ、セットアップしておいて

Page 26: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

_人人人人人人人人_>  突 然 の  <> セットアップ! <

 ̄Y^Y^Y^Y^Y^Y^Y ̄

Page 27: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

どうする?

Page 28: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

またまた声が…

Page 29: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

SORACOM Air

カスタムDNS

Page 30: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

そして…

Page 31: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Ansibleればいいと思うよ

Page 32: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Dnsmasq (192.168.0.2)• apt-proxy.local = 10.0.0.5• playbook.local = 10.0.0.10

Group A• DNS Server = 192.168.0.2

playbook.local (10.0.0.10)

dig playbook.localif [ $? = 0 ]; then wget playbook.local/hosts wget playbook.local/site.yml ansible-playbook –i hosts site.ymlfi

DNS Server= 192.168.0.2

playbook.local= 10.0.0.10

Ansible起動!

Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

Page 33: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Dnsmasq (192.168.0.2)• apt-proxy.local = 10.0.0.5• playbook.local = 10.0.0.10

Group A• DNS Server =

192.168.0.2

playbook.local (10.0.0.10)

dig playbook.localif [ $? = 0 ]; then wget playbook.local/hosts wget playbook.local/site.yml ansible-playbook –i hosts site.ymlfi

DNS Server= 192.168.0.2

playbook.local= 10.0.0.10自分自身を構成するplaybookを

ダウンロードしつつansibる

Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

Page 34: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

このへん systemd ならdigの実行結果によってファイルを

出力するUnit

apt-getやansibleの実行Unitから

ConditionPathExists を使って

実行可否を確認

これらをrequires & afterでつなぐ

Page 35: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

ところで

Page 36: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Ansibleの完了って

どうやって確認する?

Page 37: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

画面がないから

オワタ確認がオワタ

/(^o^)\

Page 38: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

拙作 Frightboard

Page 39: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Frightboard

REST APIでステータス更新AnsibleからはuriモジュールでOK

- name: Report completed to Frightboard uri: url: http://frightboard.local:9292/api/v1/statues?iid={{host_id}} method: POST HEADER_Content-Type: “application/x-www-form-urlencoded” body: “status=completed” status_code: 200,201

Page 40: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

Frightboard

Page 41: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

github.com/ma2shita/frightboard

Page 42: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

ご清聴

Page 43: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

まだだ、まだ終わらんよ!

- U.C. 0088 グラサン金髪

Page 44: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

ビジネス成功!

デバイスも大量に

撒いた!

Page 45: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

忍び寄る危機

Page 46: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

盗難

Page 47: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

何を守るのか?

Page 48: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

最悪中身は見られたくない

恥ずかしい (>_<)

Page 49: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

また、声が…

Page 50: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

心の中でご唱和ください

Page 51: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

EncFS !あれ?

Page 52: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

EncFS

fuseでお手軽しかも強固

Page 53: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

でも

暗号化キー

どうやって管理?

Page 54: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

そう、、、ここで

Page 55: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

SORACOM Air

メタデータサービス

Page 56: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

EncFS

--extpass

外部コマンド使える!

Page 57: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

カール!

出番ですよ

はい、お母さま(一部 銀英伝)

curl

Page 58: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

encfs --extpass=‘curl –s http://metadata.soracom.io/v1/userdata’ ~/.crypted ~/mnt

Page 59: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

親方!

空から、暗号化キーが!

今日、一番言いたかったのがコレ

Page 60: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

ごちゃごちゃした話はSORACOM Advent Calendar

12/10 で

Page 61: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

そもそも bootupで

( git clone hoge.git /tmp/hoge ;

cd /tmp/hoge ;

git fetch ;

git checkout $(git describe –tags –abbrev=0) )

とか、揮発性の高い領域に展開したほうが

いいかもね

Page 62: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

いかがでしたか?IoTデバイス、めちゃ増えるアップデートやセットアップ

どうする?答: カスタムDNS

デバイスに保存したくないキーどうする?答: メタデータサービス

Page 63: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

職人が丹精込めて作る時代はすぐに過ぎ去ります

オンプレで培った知見が活かせる余地あり

これらを駆使して早くデバイスを家畜化しましょう

http://www.engineyard.co.jp/blog/2014/pets-vs-cattle/

Page 64: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

いい話聞いたと思った方

手、上げて!

Page 65: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

CM

Page 66: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

SORACOM UG / fbグループ

Page 67: CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い

おわり

OpneBlocks IoTもよろしく!


Recommended