Ubuntu Weekly Recipe

第392回 Snappy Ubuntu Coreを試してみる

この記事を読むのに必要な時間:およそ 8 分

昨年の12月,Ubuntuの新しいイメージとしてSnappy Ubuntu Core発表されました。発表当時はテクニカルプレビューという位置づけもあって,⁠それっぽく動く(デモ以上のことをすると動かない)⁠程度ではありましたが,今年の6月には最初の安定版がリリースされて,現在もそれなりの開発リソースが投入されています。

今週のRecipeでは,このSnappy Ubuntu Coreの使い方について説明しましょう。

Snappy Ubuntu Core

Snappy Ubuntu Coreの特徴や位置づけについてはUbuntu Weekly Topicsの2014年12月12日号が参考になります。

簡単にまとめておくと,この「Snappy Ubuntu Core(以下Snappy)⁠はクラウドとコンテナ型仮想化や,さらにはIoTの時代まで見据えた,軽量かつ汎用的な新しいインストール済みイメージファイルです。標準でロールバック機能や個々のアプリケーションの隔離機能を備えており,さまざまなクラウドプラットフォーム上に,Ubuntuシステムをより簡単にデプロイ・リリースできるようになります。

平たく言うとCoreOSやRed HatのAtomicのUbuntu版です。Snappyがこれらと異なるのは,必ずしもDocker/rktに依存しているわけではないということです。もちろんDockerコンテナのホストとして使うことも可能ですが,SnappyならRailsやNode.jsアプリを直接隔離環境にデプロイできますし,他の構成管理ツールを用いた構築も行えます。

2015年の6月には15.04ベースの最初の安定版が,その後も何度かのリリースを経由し,9月17日には3回目の安定版リリースがありました注1)⁠またRaspberry Pi 2向けのイメージについても最初は非公式のイメージとして提供していたものが,次のリリースあたりからはx86/BeagleBone Black向けのイメージと同様に,公式イメージサーバーから提供されるようになる予定です。

注1)
Snappyはコアシステムとアプリケーション層が独立しているため,別々のリリーススケジュールを持っています。⁠Snappyのリリース」と言う場合は基本的にコアシステムのほうで,最新のUbuntuリポジトリの状態をベースに,Snappy特有のシステムを追加したルートファイルシステムです。Snappyのstableチャンネルで提供されるイメージは数週間ごとのマイルストーン的なリリースを行っています。またSnappyイメージの開発者向けに,15.04リリースとは別にrollingリリースのedgeチャンネルにて最新の開発版イメージを提供しています。

IoT向けについてはErler Roboticsが早々にUbuntu搭載ドローン蜘蛛型ロボットを販売しているのに加えて,冷蔵庫のモニタリング装置ホワイトボックススイッチなどこれまでにない分野に対するUbuntuの進出を引き出しています注2)⁠

注2)
ロボット開発プラットフォームとして定番のROSがUbuntuをベースとしていることもあって,ロボットとUbuntuは比較的親和性が高いようです。先日行われたROSConでも,マーク・シャトルワースが講演を行っています。

Snappyを起動できるプラットフォーム

Snappyのシステムイメージ自体はさまざまなプラットフォーム向けにリリースされています。

  • QEMU/KVM
  • Vagrant/VirtualBox
  • OVFに対応した仮想アプライアンス
  • Microsoft Azure
  • Google Compute Engine(GCE)
  • Amazon Web Service(AWS)
  • BeagleBone Black
  • Raspberry Pi 2(今のところ非公式)

いずれのプラットフォームもコマンド体系や使える機能は同じです注3)⁠手っ取り早く試したいのであればQEMU/KVMイメージかVagrantを使うのが簡単です。AWSやAzure,Google Compute Engineの操作に慣れているのであれば,そちらを使うのもアリでしょう。

注3)
snappyコマンドでインストールできるパッケージのうち,ARMhfのみ,x86のみ提供されているパッケージもありますので,まったく同じというわけではありません。

BeagleBone BlackやRasbperry Pi 2といった組み込み基板向けの場合,単純にサービスを立ち上げるだけでなく,I2CやSPIなどのデバイスを利用することもあるかと思います。Snappyの場合は,これらのI/Fにアクセスするために特殊な操作が必要です。これについては,また別の機会にご紹介します。

Snappyを起動する:KVM編

既にUbuntuとCPU仮想化支援機構が動いているマシンがあれば,一番簡単なのはKVMイメージを使う方法でしょう。

$ sudo apt-get install qemu-kvm
$ wget http://jp.releases.ubuntu.com/15.04/ubuntu-15.04-snappy-amd64-generic.img.xz
$ unxz ubuntu-15.04-snappy-amd64-generic.img.xz
$ kvm -m 512 -redir :4200::4200 -redir :8443::443 -redir :8022::22 ubuntu-15.04-snappy-amd64-generic.img
$ ssh -p 8022 ubuntu@localhost

stableチャンネルのリリース版のイメージをダウンロードし,展開し,起動するだけです注4)⁠ちなみにイメージサイズは180MBほどと,CoreOSなどに比べるとかなり大きなサイズになっています。

注4)
最新のedgeチャンネルを使用したい場合は,⁠http://cdimages.ubuntu.com/ubuntu-snappy/15.04/edge/」を指定してください。こちらは日本のミラーはありません。

アカウントとパスワードはそれぞれ「ubuntu」「ubuntu」です。QEMUウィンドウに直接入力してログインしても良いですが,上記のようにssh接続したほうがいろいろと便利でしょう。

4200番ポートは後で説明するWebDMで利用します。WebDMを使用しないなら指定しなくても問題ありません。同様に8443番ポートは後でインストールするownCloudパッケージのためにリダイレクトしています。こちらも必要なければオプションから外しても問題ありません。

Snappyを起動する:Vagrant/VirutalBox編

KVMを直接利用するのではなく,Vagrantを使いたい場合,もしくはUbuntuはないけれどもVirtualBoxを動かせるマシンがあるのであれば,VirutalBoxとVagrantの組み合わせでイメージを起動できます。

UbuntuSnappyを起動する場合
$ sudo apt-get install vagrant virtualbox
$ vagrant box add snappy http://cloud-images.ubuntu.com/snappy/15.04/core/stable/current/core-stable-amd64-vagrant.box
$ vagrant init snappy
$ vagrant up
$ vagrant ssh

Ubuntu以外のマシンでSnappyを起動する場合
vagrant init ubuntu/ubuntu-15.04-snappy-core-stable
vagrant up
vagrant ssh

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入