やってることが完全にプログラマー向けの開発環境を構築するシーンだわw
意識高い系がプログラマーを目指してMacbookを買って、アプリ開発環境を作りました!的な?
俺は根っからのインフラエンジニアなので、せいぜいサーバを立ててハイ終わり、ってことが多かったのよね。
今回のやりたいことでdockerやら何やらを触ることができたのでスゲー勉強になった。
本来のやりたいこと
結構前置きが長くなるんだけど、
そもそもの目的は「HomeBridgeを導入してHomeKitをフル活用」したい。
HomeBridgeってなんぞや?ってのは上記の通りで、
HomeKitに対応していない製品をHomeKitに対応できるようになる画期的な仕組み。
スマートロックやスマートリモコンなど、かなりの数のスマートホームアクセサリが夜に出回っていて、
国内だとやはりAlexa/Google Home対応ばっかで、Apple謹製であるHomeKitに対応しているものは少ないのよね。
対応しているものがあったとしても、Appleストアに売られているものはアホみたいに高い。
それらを買い揃えるのは無理ゲーって話なのと、
スマホで操作できる家電やらIoT機器が増えてきたのだけど、コントロールするアプリがバラバラになっているので、
HomeKitに集約をやりたいということだ。
Homebridgeを動かすサーバがないので・・・
Homebridgeを動かすためには常時稼働のサーバが必要。
といいつつも、rapsberry pi4のような超小型なものでOK。
WindowsでもMacでもLinuxでも何でもOK。
昨今の半導体不足の煽りを受けてか、rapsberry pi(通称ラズパイ)が超品薄状態。
売っていたとしても1万円近くしていたりと、ある意味プレミア価格が付いているので手が入りにくい状態。
家にはオンボロMac miniをサーバのように付けっぱなしにしているけど、もういつ壊れてもおかしくない状況だし、
ただ単純にMacに入れるのも何かあっけない、ということで以下の方法を考えた。
- Oracle Cloud上のVMを使う
- Mac上にDockerを入れて動かす
- Docker on Linux on Macとして動かす
案1については、Oracle CloudにVPNをつないでL2ネットワーク接続することはできた。
具体的にはASUSルーターをOpenVPNサーバ化して、VMからTAPモードでVPN接続。
その状態でVMにHomebridgeをインストールして動かしてみたんだけど
「ネットワークカメラは映らない」「エアコンが表示されない」と、
ネットワーク遅延が原因で使い物にならなかったため却下。
案2については、HomebridgeをDockerで動かすというプロジェクトが既にあって、
「これでええやん!」って思ったんだが、
ホストがMacもしくはWindowsだと動かない模様。
どうやってもDockerとホスト側でブリッジ接続ができなかったので断念。
ここに書いてある方法でVMware FusionではなくてVirtualBoxで試してみたが、
それでもやはりホストとブリッジ接続ができなかった。
(NICの設定でブリッジに変えても、NICを増やしても何故かホストオンリーに強制的に変わる)
というわけで、最終的に案3に落ち着いた。
Dockerを使うメリット
Docker知ってる前提で話をするが、
今までだと、開発環境なりアプリが動く環境を作るためには、
- サーバを準備(最悪はOSインストールから始める)
- プログラムなどアプリケーションをインストール
- アプリが動く
と、かなりの労力と準備が必要になるんだけど、
上記の1〜2を必要最小限のカタマリにしておくことで、
アプリを動かす環境をサクッと作ることができる。
しかもインターネット上に公開できるので、
誰かが作ったカタマリを流用することも可能。
Dockerを動かす環境は最低限準備しないといけないが、
OSや環境が変わってもお構いなし、とかなり画期的な技術になっている。(所謂コンテナ技術というもの)
Amazon Linuxを使うこと
今やクラウド利用が主流になっていて、そのクラウドの第一人者がAWSと言っても過言でもない。
なので、AWSで使われるLinuxといえば「Amazon Linux」。
と言っても中身がほとんどRed Hat系なので、Amazon Linuxで十分。
そのAmazon Linuxが最近はオンプレミスで利用することができるようになっており、
OSがインストールされた仮想マシンイメージが公開されているので、
WindowsみたいにOSのISOイメージをダウンロードしてきて、
仮想マシンにマウントさせて、OSインストールして・・といった作業も不要になっている。
他にもOSがインストール済みの仮想マシンイメージはたくさんあるが、今回はRHEL7Amazon Linux 2にした。
Vagrant・VirtualBox
仮想マシンを動かすためのツールとしてはVirtualBoxにした。
VMware Fusionとか、Parallelsでもいいんだけど、
うちのMac miniがHigh Sierraだし、
せっかくなのでVagrantという仮想マシン管理ツールも初挑戦。
Vagrantを使うにはVirtualBoxがメジャーなようで。
すべてCLIで仮想マシンとか作れるようなので、
なんとなくプログラマーっぽいことやってみたいな、と思ってみたりwwwwwwwwwwwwww
導入のための準備
前置きが長くなりました。
ここから本題。
上記の3の環境を作るための準備です。
まずはAmazon Linux 2のマシンイメージをダウンロード。
VDIファイルをどっか適当な場所に置く。
次にVirtualBoxおよびVagrantのインストール。
それぞれインストーラ(pkg)をダウンロードして実行、でもいんだけど
ここではコマンドからインストールする。
要Homebrewだけど・・・。
以下のコマンドを叩けばVirtualBoxのインストールは完了。
brew install --cask virtualbox
Vagrantも同様。
brew install --cask vagrant
ついでにVagrantを使いやすくるためのプラグインもインストール。
vagrant plugin install vagrant-disksize vagrant-hostmanager vagrant-mutagen vagrant-docker-compose
準備は以上!
続きはまた書きます。
----------------------------
書きますた。
Mac上にVirtual Box+dockerでHomebridgeを立てる
我が家のスマートホーム化への第一歩。
0 件のコメント:
コメントを投稿