この間のJAZ総会LTでやったネタです。
FreeBSD用のHyper-Vドライバが8月17日にリリースされていたので、それを使ってWindows Azure VMs上にFreeBSDを動かしちゃおうって話です。
まずはローカルのHyper-V上でFreeBSDを入れるところから。
LT用のネタ作ったときはFreeBSD 8.3 Releaseを使ったのですが、Hyper-V用のカーネル入れる際に8.2になったっぽい?というか今サポートされてるバージョンはFreeBSD 8.2なのでそちらをインストールするのがいいでしょう。たぶん。
注意点はWindows Azure VMsが今のところVHD形式の仮想ディスクのみサポートしてるので、VHDXじゃなくてVHDにすること、ネットワークアダプタはHyper-V用ドライバをインストールするまではレガシーネットワークアダプタを使用するところ、ぐらいです。
Hyper-V用ドライバをネットワーク無しで(ISOに焼くなどして)追加できるなら別に問題ないですが。
Hyper-V用ドライバは GitHub からダウンロードします。もしくは /usrに移動して
git clone https://github.com/FreeBSDonHyper-V/freebsd.git
します。あとは /usr/freebsd に移動して
make buildkernel KERNCONF=HYPERV_VM
make installkernel KERNCONF=HYPERV_VM
するだけ。buildkernelでエラーになるようだったら make buildworld しましょう。
簡単ですね。
問題なくインストールが終われば /etc/fstab をいじってブートパーティションを変更しておきましょう。
でないと↑みたいにブート時に手動で選ぶ羽目になります。
たぶん da0s1a とかのパーティションになってると思われますがそれぞれの環境で確認ください。
再起動後、dmesgでデバイス認識しているか確認。
問題ないですね。hyperv-utils とかvmbus0が認識されていればOkです。ネットワークアダプタはhn0として認識してるはず。
あとHyper-V用のネットワークアダプタはNICドライバがリンク変更イベントを通知しないっぽいので、DHCPを使ってIPアドレスを割り当てる場合は /etc/rc.conf とかで以下のように指定しましょう。
ifconfig_hn0=“SYNCDHCP”
基本はこれぐらい。あとは自由にサーバーを構築します。Apache立てるもよし、Node.jsいれるも良しです。
出来上がったらCSUploadコマンドのAdd-PersistentVMImageを使ってWindows Azure Storage上にVHDをアップロードします。
- Windows Azureの新IaaS機能「Virtual Machines」活用TIPS(後編)
- Creating and Uploading a Virtual Hard Disk that Contains the Windows Server Operating System
- CSUpload Command-Line Tool
注意点はAdd-PersistentVMImageで指定するOSオプションは今のところWindowsかLinuxしか指定できないのでしょうがなくLinux指定するぐらいでしょうか。。。
無事にUploadが終わったら管理ポータルから仮想マシンを作成しましょう。ギャラリーのMyImagesでUploadしたVHDが指定できるはずなので、そちらを指定して作ります。
あと、Agentがないのでウィザードで指定した追加ユーザーとかは動作しません。仮想マシン名も変わらなかった予感。
まぁちゃんとすれば行けるかもしれませんが…どうでしょうね?
というわけで起動後はSSHで普通につながります。
問題なく動作してると思います。あ、IPアドレスは自動で降られるのでDHCP使っておきましょう。VPNと組み合わせて固定化もできると思いますが未検証です。
それと無理やり動かしているので、ポータル上で見るといつまでたってもProvisioningです。。。
※ただ2日ぐらい放置するとRunningになったんですよねー謎。
ま、そんな感じで無理やりですけどFreeBSDがWindows Azure上で動きましたよっと。
ピンバック: FreeBSD on WindowsAzure(途中) | azure日記