Ubuntuのクラウドイメージを利用する

LINEで送る
Pocket

みなさんは Ubuntu をインストールする時、雑誌付録のDVD か、www.ubuntulinux.jp より Ubuntu Desktop もしくは Ubuntu Server のISO イメージをダウンロードしてインストールしているのではないでしょうか?ISO ダウンロード後、インストーラの指示に従いインストール、起動後はパッケージのアップデートを行い、kernel がアップデートされたらマシンを再起動してようやく初期設定を始める前の準備が完了します。アップデートパッケージが沢山ある場合は、ISO イメージを含めてかなりのデータをダウンロードしなければいけなく、かなりの時間を有します。

Ubuntuでは通常のインストーラ付きISOイメージとは別にhttps://cloud-images.ubuntu.com/releases/19.04/release/ で、クラウドイメージを提供しています。クラウドイメージといっても、クラウド以外のローカルの仮想環境でも使用できます。これらのイメージは常に更新されており、最新のアップデートを適用したインストール済みイメージなので、ダウンロード後すぐに使い始めることができるのです。公開されているイメージは、アーキテクチャ毎(i386, armhf, arm64, ppc64el, s390x)に以下の9種類が用意されています。

ubuntu-19.04-server-cloudimg-amd64-lxd.tar.xz
LXD向けのYAMLとテンプレートファイルのみを tar.xz でアーカイブしたものです。
ubuntu-19.04-server-cloudimg-amd64-root.tar.xz
ルートファイルシステムを tar.xz でアーカイブしたものです。
ubuntu-19.04-server-cloudimg-amd64-vagrant.box
VirtualBox向けのVagrant Boxファイル(OVF形式)です。
ubuntu-19.04-server-cloudimg-amd64.img
QEMU/KVM向けのQCOWイメージです。
ubuntu-19.04-server-cloudimg-amd64.ova
VirtualBox、VMWare向けのOVA形式のファイルです。
ubuntu-19.04-server-cloudimg-amd64.squashfs
圧縮された読み込み専用ファイルシステムsquashfsのルートファイルシステムです。
ubuntu-19.04-server-cloudimg-amd64.tar.gz
ext4 イメージファイルを tar.gz でアーカイブしたものです。
ubuntu-19.04-server-cloudimg-amd64.vhd.zip
Hyper-V向けのVHD形式のイメージを zip でアーカイブしたものです。
ubuntu-19.04-server-cloudimg-amd64.vmdk
VMWare向けの VMDK形式のファイルです。

ファイル名の通りクラウド用イメージの為、server 版のイメージしかなのいのでGUI環境が欲しい場合は、セットアップ後GUI環境を追加でインストールする必要があります。今回は、これらのイメージを使ってローカルの仮想環境へセットアップする方法を紹介したいと思います。

まず最祖に作業を始める前に、cloud-init を理解しないといけません。Ubuntuのサーバー版には最初からcloud-initがインストールされています。cloud-init は、クラウド上のインスタンスを立ち上げる際、初期設定を行ってくれるツールです。

ユーザのパスワードはもちろん、IP アドレス、ssh パブリックキーの設定、apt, yum のリポジトリ追加などをツールを使って行うことができます。以下は、user-data というファイルに ubuntu ユーザのパスワードを ubuntuと設定しておきます。まずは、事前に cloud-image-utils というツールをインストールします。

$ sudo apt -y install cloud-image-utils

user-data ファイルを作成します。

$ nano user-data
#cloud-config
password: ubuntu
chpasswd: { expire: False }
ssh_pwauth: True

・ubuntu ユーザのパスワードを ubuntu
・パスワード有効期限を無効
・ssh ログインのパスワード認証を有効

その他の設定を行いたい場合は、cloud-initのドキュメント(https://cloudinit.readthedocs.io/en/latest/)を参照してください。
なおcloud-initは、「#cloud-config」で始まっているファイルを cloud-init用のデータ(cloud-config)として 解釈するので、コメントだからといって削除してはいけません。

https://cloudinit.readthedocs.io/en/latest/

次に cloud-localds コマンドでデータストアを作成します。作られたデータストアは、’cidata’ とうラベルがついた IS09660形式のファイルです。これを仮想環境のDVDドライブに割り当てて起動してあげれば設定が反映されます。

$ cloud-localds user-data.iso user-data
$ file user-data.iso
user-data.iso: ISO 9660 CD-ROM filesystem data 'cidata'

今回は、VirtualBox で使用できる ubuntu-19.04-server-cloudimg-amd64.vmdk を使用する方法を紹介します。用意されているvmdk のディスクイメージは10Gバイトです。少し少ないのでリサイズをしたいのですが、vmdk 形式のファイルはリサイズが行えないので、ダウンロードした vmdk ファイルを リサイズが可能な vdi 形式に変換してサイズを20Gに変換してみました。もちろん、vmdk ファイルをそのまま利用してもよいです。

$ VBoxManage clonehd ubuntu-19.04-server-cloudimg-amd64.vmdk ubuntu-19.04-server-cloudimg-amd64.vdi --format vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'vdi'. UUID: 2c1215d6-f537-41c0-9290-d623907f705f
$ VBoxManage modifyhd ubuntu-19.04-server-cloudimg-amd64.vdi --resize 20000

仮想マシン新規作成時の「ハードディスク」設定画面で。「既にある仮想ハードディスクファイルを使用する」を選択して、作成した ubuntu-19.04-server-cloudimg-amd64.vdi ファイルを選択します。

仮想マシン作成後、作成した仮想マシンを選択して「仮想マシン」->「設定」の「ストレージ」より「光学ドライブ」に先程作成した user-data.iso を選択します。

「シリアルポート」より「ポート1」の「シリアルポートを有効化」にチェックを入れて準備完了です。

起動すれば ubuntu ユーザでログイン出来てすぐに使えます。
※ 起動後、パスワードが反映されるのに少し時間がかかります。

libvirt を使用して仮想環境を構築しているユーザは、ubuntu-19.04-server-cloudimg-amd64.img を使うのが良いでしょう。こちらは、デフォルト2G のイメージなので、変更が必要な場合はqemu-imgコマンドでイメージサイズのリサイズを行います。

$ qemu-img resize ubuntu-19.04-server-cloudimg-amd64.img 20G

こちらも起動ディスクを ubuntu-19.04-server-cloudimg-amd64.img にして、光学ドライブに先程作成した user-data.iso 指定すれば VirtualBoxと同じようにすぐ使用できます。

※シリアルポートの設定は不要

LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください