読者です 読者をやめる 読者になる 読者になる

目的of目的

技術的な事とか趣味な事を書いて日本語の練習

安価におうちESXiサーバを作る

Linux Server

所用で自宅にESXiが欲しくなりました。 仮想アプライアンスはesxiなファイルで配られてることが多いので仕方ないですね。 しかしESXiを動作させる母艦はエンタープライズ向けなラックマウントサーバなどが主になっています。

そこで、お家においても困らなさそう(大きさ、電気代、価格)を作っていきます。 今回、30000円前後で構築することができました。

機材

低消費電力で安そうなモノを使用します。 NUCは安くて消費電力も少なく、利用例も沢山あるのでオススメです。 しかし、CPUがオンボードで搭載されているため後々にアップグレードできない欠点があります。

今回は初めの出資を抑えるために安価なCPUを用いるのでベアボーンキットを使いました。

新し目の規格であるmini stxを採用した、Deskmini 110とkabylakeのPentium で組みました。

ASRock Intel H110搭載 ベアボーンPC Desk Mini 110/B/BB

ASRock Intel H110搭載 ベアボーンPC Desk Mini 110/B/BB

メモリが必要になるので最低要件の8GBを接続しておきます。

あとはストレージですがM2と2.5インチが刺さるので、余っているものを使うなら新規で購入するかしてください。

組み上げとインストール

特に難しい点はありませんが、ストレージとマザーボードとの接続が少し厄介です。 従来使われているSATAケーブルではなく、細いケーブルで接続コネクタ部が特殊なので気をつけて取り扱ったほうがよさそうです。

また、esxi 6をインストールしましたが標準のインストーラーでドライバの不備なく完了しました。

あまりインスタンスは動作させられませんが、30000円で検証用に作れるのでお手軽です。

ぜひ、興味があれば構築してみるといいかも知れないです。

RouterBoardでL2TP/IPSecサーバ構築

新年になってまとまった時間が取れましたので、昨年に購入したRB750GR3(hEX)を設定します。

//昨年は色々とイベントにいったのでそちらについても記事にしたいですが、文章化するモチベーションが湧かなくて…

この記事では、hEXをL2TP/IPSecサーバとして構築する方法についてまとめます。参考にさせていただいたページはこちらです。

後日、webfigかwinboxのSSと構成図を貼り付けつつ作り直そうと思います。

手順

version: 6.38rc51

リモートから接続してきたクライアント用にIPアドレスプールを作成します。 IP > Pool からPoolを追加します。

PPPのProfileを作成します。 PPP > Profile から作成します。

  • local address
    • ルータのアドレス
  • remote address
    • 作成したpoolのname
  • DNS Server
    • 指定したいサーバがあれば

接続用のユーザを作成します。`PPP -> Secrets でユーザを追加します。

  • name/password
    • ユーザ名/パスワード
  • profile
    • 作成したPPP profileのname

L2TPを有効化します。PPP > InterfaceのメニューからL2TP Serverで設定できます。

  • Enable
    • 有効化する
  • Default Profile
    • PPPで作成したProfile
  • IPSec Secret
    • 事前共有鍵を決め入力
  • Use IPSec
    • チェックする

また、認証方式暗号化方式を変更したい場合、IP > IPSec > Proposalで変更が可能です。

下の通りFirewallを開けて完了です。

add chain=input protocol=udp port=1701,500,4500
add chain=input protocol=ipsec-esp

このままだと、配下のサーバやコンピュータと通信できません。 別ポートへ疎通するためにProxy-ARPを設定します。

Interface > 対象のIFを選択してARPをproxy-arpに設定します。

Homebridgeを使ってSiriでPhilips Hueをコントロールする

ガジェット Server

いい加減HueとIRKitを使いこなして未来的なお部屋にしたいなぁと考えています。 しかしモチベーションが上がらないのでなかなか進まず…

今回はhomebridgeというApple HomeKitのオープンソース実装を使ってみます。 これを使用することでSiriの音声認識をトリガーとして行うことが出来ます。

手順

必要とされる物は以下の通りです。

github.com

github.com

Philips Hue(ヒュー) スターターセット v2   929001156101

Philips Hue(ヒュー) スターターセット v2 929001156101

Avahiが必要とされるのでインストールしておきましょう。

% yaourt -S avahi nss-mdns
% systemctl start avahi-daemon.service
% systemctl enable avahi-daemon.service

Avahi-daemonを起動していないと以下のログを吐いて起動してくれません。

dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name,
^

Error: dns service error: unknown

homebridgeをインストールします。

% sudo npm install -g homebridge homebridge-philipshue --unsafe-perm

homebridgeのconfigファイルを作成します。とりあえずこんな感じで動作するはずです。

gist367b7b462abb690e6ab010cc4ed37d43

usernameを空白にすると、自動的にhueのユーザを作ってくれます。

homebridgeコマンドで起動するので、とりあえず起動してみます。

/usr/lib/node_modules/homebridge-philipshue/node_modules/q/q.js:126
                    throw e;
                    ^
Please press the link button on your Philips Hue bridge, then start the HomeBridge server within 30 seconds.

hueの"username"を空白にすると上のようにログを出力するので、Hueボタンを押して素早くhomebridgeを再起動します。

/usr/lib/node_modules/homebridge-philipshue/node_modules/q/q.js:126
                    throw e;
                    ^
Created a new username "O81cjxxxxxxxxxxxxxxxx" for your Philips Hue. Please add it to your config.json then start the HomeBridge server again:

すると、上記のようにログを出力するのでusernameの所に記載します。

再び起動すると特に問題なく起動が完了するはずです。

その後Homekitアプリを起動して、PINコードを入力すれば動作させる事が可能です。

参考にしたサイトはこちらになります。ありがとうございます。

実際に試してみて

音声でHueが操作できたときは、ランプのon/offだけですが感動しました… Siriの音声認識は結構な精度があると思っていましたが、これを開発者が良いように使えるのはまだまだかなぁと思っていたからです。

homebridgeのpluginは色々とあって、http叩いたりcmd叩いたりirkit叩いたりとユメが広がりそうなのでぜひぜひやっていきたいです。

Arc Touch Bluetooth Mouseをいただきました&簡易レビュー

ガジェット Surface

Surface Pro 3を購入したときも、MicrosoftさんからプレゼントでArc Touch Mouseを頂きました。

moyashiki.hateblo.jp

このマウスは携帯性に優れていて、使いにくくも無いので重宝していたのですが、レシーバでUSBが1つ埋まるのが難点でした。

そんなことを思いながら使っていると、またまたMicrosoftさんのプレゼント企画に当選してBluetoothを頂きました!!ありがとうございます。

f:id:moyashiki:20160803004347j:plain

簡易レビュー

従来のArc touch Mouseと同様に蛇腹部分を展開すると電源ONになる事は変わらず。Bluetoothなので、初回起動時にペアリングが必要になります。

USBレシーバが無くなったため、落とす心配をする必要が無くなり安心して携帯できます。また、USBポートが貴重なSurface Pro 3のようなノートPCでも問題なく使用する事ができます。

お値段は少し高いですが、モバイル用途には最適だと思いますのでぜひおすすめできる一品です。

UE4の練習にホラーゲームもどきを作ってみる

UE4

先日Ocufes finalに行ってきました。体験できたブースはそこまで多くないのですが、高クオリティでせんすふるなものを体験させていただきました。 ありがとうございます。

自分もDK2を所有しているので、再び公開できるようなコンテンツを作ろうと思います。 今回は、ホラーゲームのお部屋みたいなのを作って下地をやっていきたいと思います。

以前Unityを少し触ってポッキーゲームらしきものを作ったので、今回はUE4を用いてホラーゲームの様なものを作っていきたいと思います。

moyashiki.hateblo.jp

  1. ます、テンプレートとして「First Person」を使用します。

  2. 要らなさそうなオブジェクトを削除します。今回はCube類とBig wallを削除します。 f:id:moyashiki:20160225001132p:plain

  3. 下のfloorをコピーして天井を作ります。Vキーを押しながら動かすことで、オブジェクトに吸い付けることができます。 f:id:moyashiki:20160225001316p:plain

  4. このままだと真っ暗なので、操作モデルの銃をはぎ取ってライトに変えます。銃を捨てるので、玉を出すBPも消しておきます。 選択している所を削除します。 f:id:moyashiki:20160225001522p:plain f:id:moyashiki:20160225001547p:plain

示している感じでSpot Lightを付けます。「Mesh2P」の配下につけないとマウスの動きでライトが変わらないです。 f:id:moyashiki:20160225001752p:plain

  1. ライティング等をビルドすれば原型は完成です。 f:id:moyashiki:20160225001843p:plain

あとはマテリアルやライトをちょこちょこ弄れば作れるはず… 頓挫せずに完成させたい物ですね…

avahiを導入してcliでIRKitを使用するまで

ガジェット Linux

前のブログでも紹介しましたが、IRKitを購入しております。

moyashiki.hateblo.jp

とりあえず、おうちサーバから使えるか試してみようというログです。

実行環境

  • ArchLinux 4.1.6-1-ARCH
    • avahi 0.6.32rc-4 [installed: 0.6.32rc-1]

アドレスを調べる

IRKitはBonjourが動作しているので、ホスト名を調べてそのホスト名からアドレスを辿るという流れです。

sonoda moyashiki% avahi-browse "_irkit._tcp" 
+ enp3s0 IPv4 irkitXXXX                                     _irkit._tcp          local

このコマンドから得られた[irkitXXXX]がホスト名となるわけですね。 ホスト名からアドレスを取得するためには以下のコマンドです。

sonoda moyashiki% avahi-resolve-address -n iRKitXXXX.local                           [~]
irkitXXXX.local 192.168.2.255

これでIPアドレスが判明したので、APIを叩いてみます。 受信した赤外線信号を出力するAPIは、GET /messages です。 ちなみにAPIを叩くと受信した信号は消えてしまうのでもう一度送る必要があります。

sonoda moyashiki% curl "http://192.168.2.255/messages" -H "X-Requested-With: curl"   [~]
{"format":"raw","freq":38,"data":[17421,8755,1111,1111,1111,3341,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,3341,1111,3341,1111,1111,1111,1111,1111,1111,1111,1111,1111,3341,1111,1111,1111,1111,1111,3341,1111,3341,1111,3341,1111,3341,1111,3341,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,3341,1111,3341,1111,3341,1111,65535,0,23743,17421,4400,1111]}%    

何故か自分の環境ではruby-irkitが動作しなかったのでcliで叩く方法を紹介しました… 一応DNS-SDのライブラリは動作しているので動くはずの想定なんですがね…

ライブラリが動作しているようなログが出てくるスクリプトを置いておきます。

gist.github.com

IRKitを買ってスマホで一括管理をしたかった

ガジェット ガジェット

表題の通り、IRKitを買いました。IRKitの詳しい説明は以下のリンクを見てもらえればわかりますが、一言で言うと「スマホ版学習リモコン」です。

IRKit - Open Source WiFi Connected Infrared Remote Controller

特徴としては、以下の通りです。

  • 赤外線リモコンの信号を学習させることが出来る
  • ネットワークと接続して、スマートフォンアプリから学習した信号を送ることが出来る(テレビのチャンネル変更など)
  • APIが提供されていて、自分でリモコンアプリを作ることが出来る

セットアップ等も簡単で、MicroUSBを接続するだけで終了です。後は、スマホアプリからWifiの設定などを行う必要があります。自分は色も合っていたのでこちらのUSBケーブルを購入して使用しています。

自分的には3番目の機能をメインで使いたいので買った次第です。自分で同じような機器は作ろうと思えば作れますが、3ヶ月ぐらいかかりそうです…

実際にアプリとして叩く場合はライブラリがあるのでそちらを使うと簡単そうです。

このIRKitですが、受信した赤外線信号は機器では保持しません。なので、複数スマホを使い分けている場合は都度信号の登録が必要ですね。そのあたりを上手く出来るアプリを作りたいなと考えています。