0

RICOH THETAをMacに複数接続する方法

前:Web+DB Press vol.85でRICOH THETAについて書いた


THETAの数だけVM起動すれば複数接続できる。


THETAはWiFiで接続する必要があるので、USB WiFiアダプタがあるとよい。接続したいTHETAの数だけ用意する。USB WiFiを追加しないと、Macbookの内蔵のWiFiがTHETAに専有されてしまってインターネットできなくなる。

MacにTHETAを1つ接続する

MacのWiFiはインターネットに接続するのに使う。
追加のWiFiアダプタをUSB接続し、そっちをTHETAに接続する。planexのGW-USVALUE-EZが小さくていい感じなので使ってる。

「ネットワーク環境設定」の左下の歯車メニューから、「サービスの順序を設定」して内蔵WiFiを追加WiFiよりも上に持ってこないと、Macがインターネットにつながらないので注意する。


なお、THETAのIPアドレスは192.168.1.1に固定されている。ルーターのIPアドレスが192.168.1.1だったり、複数のTHETAに同時接続したりするとIPアドレスが重複してしまって接続できなくなる。

そんな時はVirtualBoxを使う

MacにTHETAを複数接続する


VirtualBoxでVMを作って、VMのネットワークアダプタの設定で割り当てを「NAT」にする。するとVMはVirtualBox内に作られた仮想ネットワークを経由してインターネットに接続する。VMのIPアドレスは192.168.56.101とかそんな感じのになる。


追加したUSB WiFiアダプタをVMに割り当てれば、

[インターネット]—[vboxnet0 (192.168.56.1)]—[VM (192.168.56.101)]—[THETA (192.168.1.1)]

のような接続で外に出る。VMではなくMac側でifconfig等で見ると「vboxnet(数字)」等の仮想アダプタが増えてるはず。

VMを複数起動してそれぞれにUSB WiFiアダプタ割り当てれば、それぞれのVMから見てTHETA(192.168.1.1)は各自に割り当てられたUSB WiFiの接続先のTHETAだけになるので、1台のMacで複数のTHETAに接続できる。

NATではなくNATネットワークにすればVM間でも通信できるはず。

0

DockerとdokkuをMacにインストールして自分をHeroku化した

dokkuを普段持ち歩いてるMacbook AirのVirtualBoxのUbuntu12.04に入れた。

dokkuはDocker環境をセットアップしてくれて、そこに個人用のHerokuのようなものを建立してくれる。
dokku本体は100行ぐらいのshellscriptで実装されている。そこから作者のprogrium氏が作った色々なツールが呼び出されるので、実体としてはもっと大きいけど。

vagrantとかchefとか全く使わずに、アプリをgit pushするとVMが建つ環境が簡単に作れる。
gitのhookでdockerコンテナが作られて、フロントのnginxのproxyが設定されて、websocketも通る。
コンテナ構築にはherokuのbuildpackが使われているので、アプリの内容に応じて自動的にnodeとかrubyとかの環境がセットアップされる。
buildpackはherokuがアップデートしていってくれるから、今後RubyやNodeが新しくなっても良い感じにフォローしてくれて、楽できる。

家のMacMiniにも似たようなセットアップをして、自宅をmini heroku化もできた。そっちの設定はまたあとで書く。


参考になる


なんだかんだでぐぐる前にgithubにあるREADMEちゃんと読むのが一番参考になる


Ubuntuインストール

Mac OSX上のVirtualBoxに、ubuntu12.04 64bit serverを入れた。
あたらしくまっさらなUbuntuを用意する事が推奨されている。

2014年4月11日現在、ubuntu 13系+dockerの組み合わせでデッドロックしたりコンテナが止まらなかったりするらしい。

% sudo apt-get install openssh-server
% sudo apt-get install python-software-properties # 12.04だと必要

インストール時のオプションは全部デフォルトのままでよい。

自分のMacからは、Ubuntuが 192.168.56.103 として見えるようになった。(ホストオンリーアダプタを使っている)
普通にNATとかブリッジアダプタとかでもいいし、ネットワークは好きに設定すればいい。


なお起動する時にVirtualBoxのGUIからではなく、
% VBoxManage startvm "VM名" --type headless
で起動するとGUIなしでVMを起動できる。MacのLaunchDaemonに書けば便利


dokkuインストール

安定版を入れた。

Ubuntuで
% wget -qO- https://raw.github.com/progrium/dokku/v0.2.2/bootstrap.sh | sudo DOKKU_TAG=v0.2.2 bash
dokkuというユーザーが増えて、dockerやnginxなどが入る。


ssh鍵のインストール

ubuntuインストール時に作った普通のユーザーと、dokkuというユーザーそれぞれに同じ鍵をインストールした

Macから
% brew install ssh-copy-id
% ssh-copy-id -i ~/.ssh/id_rsa.pub sho@192.168.56.103

sshでubuntuに入ってから
% cat ~/.ssh/authorized_keys | sudo sshcommand acl-add dokku shokai
/home/dokku/.ssh/authorized_keys に書き込まれる。


ホスト名の設定

Ubuntuに /home/dokku/VHOST を作り、
dokku.192.168.56.103.xip.io
を書いた。

dokkuのnginxはリクエストのホスト名のサブドメイン部分でどのアプリケーションへのリクエストなのかを判別して振り分けるので、IPアドレスではなくドメイン名でアクセスできるようにしなければならない。

xip.ioを使うとサブドメイン部分をそのまま返してくれるのでLAN内のマシンにドメインが振られてるように見せかけられる。


ちゃんとグローバルIPでドメイン名ある環境だったら、xip.ioは必要ない。


デプロイする

試しにHerokuのnodejsサンプルをデプロイしてみる。

Macから
% git clone git@github.com:heroku/node-js-sample.git
% cd node-js-sample
% git remote add dokku dokku@dokku.192.168.56.103.xip.io:node—js-sample
これは
git remote add リモート名 dokku@ホスト名:アプリ名
という事。


git pushでデプロイする
% git push dokku master
すると、Herokuにデプロイした時と同じようにbuildpackがNode環境を作ってる様子が流れて、
http://node-js-sample.dokku.192.168.56.103.xip.io
で起動する。



試しにsocket.ioでwebsocketを使っているアプリもデプロイしてみたら、ちゃんとwebsocket proxy通った。

dockerを0.10から0.9に戻す

dokku v0.2.2は、docker 0.10だと動かない。
デプロイすると
Invalid namespace name (app), only [a-z0-9_]
というエラーがでて失敗する。

issueが立ってた。
Dokku 0.10.0: Pre-receive hook declined: Invalid namespace name (app) · Issue #533 · progrium/dokku
docker 0.10からnamespaceが4文字以上必要に変更されたが、dokku v0.2.2が作るコンテナはappというnamespaceを使おうとするので失敗する。

とりあえずdockerを0.9.0に落とせば動くので、Ubuntuで
% sudo apt-get remove --purge lxc-docker
% sudo apt-get install lxc-docker-0.9.0

これでMacからgit pushしなおしたらデプロイ通った。


コンテナの管理

dockerコマンドとdokkuコマンドを併用する。
詳しくはgithubのREADMEの下の方に書いてある

Ubuntuで
コンテナ一覧
% sudo docker ps

コンテナの削除。dokkuでの名前で指定して削除する
% sudo dokku delete アプリ名

コンテナのログを見る。tail -fみたいに追ってくれる。
% sudo docker logs -f コンテナ名


コンテナ名は、docker psしたら一番右にでてくるnostalgic_nobelとかsad_galileoみたいな厨二ネームっぽいやつがソレ。


手元のMacからログを見たりする

これらのコマンドはもちろんssh command proxyからも実行できる。
自分をdockerグループに追加すれば /var/run/docker.sock の権限が得られるので、sudoが必要なくなる
% gpasswd -a sho docker

Macから
% ssh ホスト名 docker ps
% ssh ホスト名 docker logs -f コンテナ名
でログが見れる。

0

mavericksにしたらVirtualBoxがfailed to open/create the internal networkで起動しなくなってた

VirtualBox4.2でネットワークをブリッジアダプタにして使っていたんだけど、Mac OSXをmavericksにアップデートしたらVMが起動しなくなった。

“failed to open/create the internal network”というエラーが出ていた

VirtualBoxを4.3.2にしたらなおった。
Downloads – Oracle VM VirtualBox

VirtualBoxのメニューにある「アップデートを確認」ではアップデート無しになっていたから、どうした物かと思ってたけど4.3でてるじゃん・・

0

MacMiniにVirtualBoxでUbuntu12.04インストールした

家のネットブックのUbuntuマシン(作ったgemがLinuxで動くか確かめたりカメラ/マイク/シリアルポートを使うための実験用)を廃止してMacMiniのVirtualBox内で運用することにした。
GUI付きでインストールするが、GUIはSkype Botのためにしか使わない。基本的にMacMini側からsshでログインしてCUIで操作する。


■Ubuntuインストール

それぞれダウンロードしておく。

VirtualBoxをインストールして、起動。
左上の「新規」から仮想ディスクイメージをHDD16GB/メモリ512MBで作った。


「起動」ボタンを押す。

何も入ってないカラのイメージなので、さっきダウンロードしたUbuntuのイメージファイルを選ぶ。
画面の指示に従ってUbuntuをインストールする。全部デフォルト設定で良い。
途中で「HDDを消すか」と言われて怖いが、さっき作った仮想ディスクイメージの事なので気にせず消す。

インストールが終わったら再起動。


左上の「Dashホーム」からTerminalで検索してターミナル起動する。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ssh emacs-nox screen build-essential virtualbox-guest-additions
適当に色々インストールしておく。

あと環境設定からUbuntuがスリープしない様に設定する。


■IPを固定する
家の中ではMacMiniは192.168.1.3で運用しているので、VirtualBoxのUbuntuを192.168.1.4にする。
一度Ubuntuの電源を切ってから、VirtualBoxの設定画面から「ネットワークアダプタ2」を追加、「ブリッジアダプタ」に設定する。


Ubuntuを起動してから、 /etc/networking/interfaces を編集
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1


ネットワークを再起動して設定を有効にする
sudo /etc/init.d/networking restart
sudo ifconfig
192.168.1.4になっていた。

Mac側から接続する。
ssh 192.168.1.4

なお、これは固定IPなのでラップトップとかで持ち歩いて外のWiFiに接続する時とかには設定しない方が良い。
iface eth1 inet dhcp
にして下のアドレス指定してる所を全部書かないか、そもそもネットワークアダプタ1だけで十分だな


■Macから仮想マシンを起動する
Macのterminalから起動できる
VBoxManage startvm "Ubuntu" --type gui
VBoxManage startvm "Ubuntu" --type headless

参考:launchdでVirtualBoxの仮想マシンを自動起動 – komagata
Mac用のLaunchDaemons用plistも設定しておけば、Macの電源入れると同時にVirtualBoxを起動できる。


■Skype botを自動起動
とりあえずSkypeをインストールする。Skypeにはログインパスワードを覚えさせておく。
Ubuntuの右上の電源ボタンから「自動起動するアプリケーション」を選んで、
/usr/bin/skype を指定。Ubuntuを再起動してみるとSkypeが起動する。

一度終了して、上のVBoxManageコマンドからheadlessで起動してもSkypeが起動できた。

同様にskype-chat-gateway-linuxも起動できる。


■家の外からVirtualBoxのUbuntuにログイン
mydns.jpで非固定IPの家の回線にドメイン名を振っているので、外からMacMiniにはsshでログインできるようになっている。

外出中は
Macbook Air ---[インターネット]---> MacMini(shokai.org) ---[家のLAN]---> VirtualBox(192.168.1.4)
という風に多段sshする事にした。ポートフォワードで22番以外でVirtualBoxのsshを外に出してもいいけど。


Macbook Airの ~/.ssh/config に追記する
Host vb-ubuntu
HostName 192.168.1.4
ProxyCommand nohup ssh -l `whoami` shokai.org nc %h %p
全て同じユーザ名でログインしているのでwhoamiで取り出す。

ssh vb-ubuntu
で外からでもVirtualBoxに接続できる。

参考:sshの多段接続がものすごい便利な件 | Carpe Diem