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

Kikuchy's Second Memory

つくる楽しさをもっと伝えたい。プログラムを書いていて、わからなかったこと・気付いた事を書き留めています。

Ubuntu 12.10 Server + VirtualBoxを使って、RoR開発用サーバーを整える

またVirtualBoxネタです。

ちょっと思い立ってRuby on Railsを使ったアプリを作ってみようと思ったのです。
が、普段使いのマシンの環境はあまり汚したくない。
かと言って、仮想マシンの中だけで作業するのは辛い(仮想マシンGUI使うのは避けたいが、動作確認のためブラウザは必要)。

そこでこんな構成にできないか試してみました。


目標:
仮想マシンGUI抜きのLinuxの開発環境を構築し、ホストOSからSSHで接続して開発を行う。

これなら、

  • 仮想マシンを実行する負担が大きくない => ファンがうるさくならない!
  • 普段使いのターミナルで作業できる => Macならフルスクリーンもウィンドウ表示も思いのまま!
  • きちんとブラウザで表示確認が出来る => 「テキストブラウザ使えば?」とか無粋な事言わない!

ということが出来てしまう訳です。素敵。
開発環境が要らなくなったら、仮想マシンのディスクイメージごと捨てられますしね。


さて、早速やってみました。

実験環境は以下。

やること:
1. 適当に仮想マシンUbuntuをインストールします。インストール時の設定で、「SSHサーバーもインストールしますか?」みたいなことを聞かれたので、一緒にインストールしておきました。

2. このページを参考にRailsの開発環境を整えます。
デプロイ用のサーバーではないので、このページのまんまインストールしました。

3. 一度Ubuntuが動いている仮想マシンをシャットダウンし、VirtualBox側でネットワークの設定を変えます。
標準では「アダプター1」が有効になっているはずですが、「アダプター2」を有効にし、「割り当て」を「ホストオンリーアダプター」にします。
このとき、「名前」の部分に書かれているネットワーク名を覚えておいてください。
f:id:kikuchy:20130118012321p:plain

4. VirtualBoxの環境設定を開いて、「ネットワーク」タブから、先ほど覚えておいたネットワーク名の設定を編集します。
f:id:kikuchy:20130118012547p:plain
「アダプター」タブでは、IPv4のアドレスを控えておいてください。
f:id:kikuchy:20130118013046p:plain
DHCPサーバー」タブでは、「サーバーを有効化」のチェックを外しておきます。ゲストOSがDHCPでアドレスを拾っていると、ホストOSから接続するときにいちいちIPアドレスを調べなくちゃいけなくなるので、この後アドレスを固定してしまいます。
ゲストOSでDynamic DNSサーバーも動かしているなら、DHCPは切らなくても良いかもしれませんが。
f:id:kikuchy:20130118013058p:plain

5. ゲストOSであるUbuntuを立ち上げてログインして、以下のコマンドを打ちます。

$ sudo ifconfig eth1 192.168.56.101 netmask 255.255.255.0 up

eth1はネットワークアダプタ名です。既にeth1に割り当てがあるようなら好きに変えてください。
192.168.56.101は、ゲストOSに割り当てるIPアドレスです。 4. で控えたアドレスと同じサブネットに属するアドレスならば好きに変えちゃっていいです。

とりあえず、この状態でホストOSから192.168.56.101(5. で割り当てたアドレス)へSSHしてみてください。繋がれば成功です。

6. 上記の方法は一時的なものなので、起動時に自動的に設定が行われるようにしましょう。
ゲストOSに入って、root権限で /etc/network/interfaces を編集します。以下を追記してください。

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255

例によってネットワークアダプタ名やアドレスは適当に。

これでゲストOSを立ち上げただけで、ホストOSからゲストOSへSSHで入れるようになりました! やったね!!
いちいちSSHのときにアドレス打ち込むのが面倒なら、ホストOSのhostsに登録しちゃえば便利になるかと思います。


この後、SSHで入ったUbuntu上で

$ rails s

して、Macの方のSafarihttp://192.168.56.101:3000/ にアクセスしたら、ちゃんとRailsのスタートページが表示されました! やったね!!
これでMacのターミナルから、Ubuntu上でRails開発が出来るってもんです!



え、グラフィカルなエディタが無い? VimEmacsを使いましょう!



参考: