先日Snappy Ubuntu Coreが発表されました。CoreOSやProject Atomic、JeOSと同様にクラウドやコンテナ環境に適した、UbuntuのMicro OSバージョンです。現在はアルファバージョンで、Microsoft AzureとKVM用のイメージが公開されています。最近のAzureのLinuxへの対応はかなりアグレッシブです。手元にKVM環境がないので、イメージをVMDKに変換してVitualBoxで動かすことにします。
Ubuntu 14.04の作業マシンの確認
IDCFクラウド上の作業マシンでVT-xが有効になっているか確認します。残念ながら有効になっていないので、この環境で直接KVMを動かすことはできないようです。
$ sudo apt-get install qemu-kvm cpu-checker |
Announcing Snappy Ubuntu Coreの手順を追いながら、VMDKファイルを使いローカルのVirtualBoxでSnappy Ubuntu Coreを動かしてみます。
qemu-imgコマンドでVMDKにコンバート
作業マシンにqemu-utilsをインストールして、qemu-imgコマンドを使えるようにします。
$ sudo apt-get update |
Ubuntu Coreのalpha releaseを作業マシンにダウンロードします。
$ wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-01.img |
イメージフォーマットの確認をします。qcow2でした。
$ qemu-img info ubuntu-core-alpha-01.img |
qemu-imgコマンドを使い、qcow2からVMKD形式にコンバートします。
$ qemu-img convert -O vmdk ubuntu-core-alpha-01.img ubuntu-core-alpha-01.vmdk |
OSXのVirtualBoxで起動する
Ubuntuの作業マシンでコンバートしたVMDKファイルをローカルのOSXにコピーしてきます。VirtualBox適当な仮想マシンを作成して起動します。
- RAM: 512MB
- ストレージ: ubuntu-core-alpha-01.vmdk
OSXからSSH接続
OSXからVirtualBoxへSSH接続する場合、今回は簡単に仮想マシンのネットワークにポートフォワードを設定します。
- ネットワーク > アダプター1 > ポートフォワード > 2222 -> 22
OSXのターミナルからポートフォワードする2222へSSH接続します。
$ ssh ubuntu@localhost -p 2222 |
デフォルトのユーザーとパスワードは以下です。
- user: ubuntu
- passwd: ubuntu
インストールの確認
snappy infoコマンドを使うと、Ubuntu Coreのインストール状態をoverviewできます。まだframeworksもappsもインストールされていません。
$ snappy info |
バージョンを確認すると、インストールしたubuntu-coreより新しい141が利用できるようです。
$ snappy versions |
apt-getコマンドは使えなくなっています。
$ apt-get update |
Docker(frameworks)のインストール
dockerパッケージを探します。1.3.2が見つかりました。
$ snappy search docker |
snappyコマンドを使い、Dockerをインストールします。
$ sudo snappy install docker |
インストールできたか確認します。
$ snappy versions |
hello-world(apps)のインストール
チュートリアルに従って、hello-worldアプリのインストールをしてみます。
$ sudo snappy install hello-world |
snappy infoコマンドでインストール状態を確認します。
$ snappy info |
snappyコマンドでインストールできるパッケージには2種類あります。はじめにインストールしたdockerはframeworks、hello-worldはappsに該当します。frameworksとappsはセキュリティポリシーが異なり、frameworksはシステムを拡張するためのパッケージのようです。dockerパッケージはdockerアプリを動かすためのサービスになります。
webserver(apps)をインストール
もう少し複雑になったwebserverアプリを検索してみます。
$ snappy search webserver |
go-example-webserverはGoで書かれたWebサーバーです。
$ sudo snappy install go-example-webserver |
VirtualBoxの仮想マシンのネットワークに、8888をポートフォワードを追加します。OSXのターミナルからcurlで接続するとHello Worldが出職できました。
$ curl localhost:8888 |
バージョンアップ
新しい更新のバージョンがあるか確認します。
$ snappy update-versions |
ubuntu-coreパッケージのupdateを実行します。
$ sudo snappy update ubuntu-core |
-aフラグをつけて、アクティブでないバージョンも表示すると、ubuntu-coreのバージョン141がインストールされました。最終行に出力されるようにリブート後に最新のバージョンにアップデートされます。
$ snappy versions -a |
OSをリブートします。
$ sudo reboot |
バージョンを確認します。ubuntu-coreが141に更新されました。
$ snappy versions -a |
アップデートをロールバックする
Snappy Ubuntu Coreは簡単にシステムのロールバックができます。ubuntu-coreをバージョン140にrollbackしてみます。
$ sudo snappy rollback ubuntu-core |
OSをリブートすると、ubuntu-coreがバージョン140にrollbackしたことを確認できます。この後はOSをリブートしただけだとバージョンは変更されません。
Part Tag Installed Available Fingerprint Active |
OVA形式でエクスポートしてみる
OSXのVirtualBoxからイメージを単純にOVA形式でエクスポートして、IDCFクラウドにインポートしてみました。残念ながらデフォルトの状態だとインポートに失敗してしまいます。OVFファイルの中身を編集しながらOVAを作ってみようと思います。