例: Ubuntu イメージ

例: Ubuntu イメージ

この例は、Ubuntu 14.04 (Trusty Tahr) イメージをインストールします。別のバージョンの Ubuntu イメージを作成する場合、注記した差分の手順を実行してください。

Ubuntu インストール ISO のダウンロード

目標は利用可能な最小のベースイメージを作成することなので、この例はネットワークインストール ISO を使用します。Ubuntu 64 ビット 14.04 ネットワークインストール ISO は Ubuntu ダウンロードページ にあります。

インストールプロセスの開始

前のセクションに記載されている virt-managervirt-install を使用して、インストールプロセスを開始します。 virt-install を使用する場合、必ず VNC クライアントを仮想マシンに接続してください。

仮想マシンイメージの名前が ubuntu-14.04 であると仮定します。これは、イメージを操作するために virsh コマンドを使用する際に、知っている必要があります。

virt-manager を使用している場合、このコマンドは以下のようになるでしょう。

# qemu-img create -f qcow2 /tmp/trusty.qcow2 10G
# virt-install --virt-type kvm --name trusty --ram 1024 \
  --cdrom=/data/isos/trusty-64-mini.iso \
  --disk /tmp/trusty.qcow2,format=qcow2 \
  --network network=default \
  --graphics vnc,listen=0.0.0.0 --noautoconsole \
  --os-type=linux --os-variant=ubuntutrusty

インストールのステップ実行

インストーラーの初期ブートメニューで、Install を選択します。インストールのプロンプトを一つずつ実行します。デフォルトのままが良いでしょう。

_images/ubuntu-install.png

ホスト名

インストーラーが、ホスト名の入力を求めるかもしれません。デフォルトの ubuntu が良いでしょう。後ほど cloud-init パッケージをインストールします。これにより、このイメージを使用して展開された新規インスタンスの起動時に、ホスト名が設定されます。

ミラーの選択

インストーラーにより提案されるデフォルトのミラーが良いでしょう。

インストールのステップ実行

デフォルトのオプションを使用して、インストールを進めます。ユーザー名を聞かれた際、デフォルト (ubuntu) が良いでしょう。

ディスクのパーティション作成

ディスクのパーティションは、さまざまな選択肢があります。デフォルトは、うまく動作する LVM パーティションを使用し、3 つのパーティション (/boot/`、swap) を作成します。この代わりに、単一の ext4 パーティション を作成し、/`` にマウントすることもうまく動作するでしょう。

よくわからない場合、インストーラーのデフォルトのパーティション構成を使用することを推奨します。別の構成にする明確な利点がないためです。

自動更新

Ubuntu のインストーラーは、お使いのシステムのアップグレードを管理する方法を確認してきます。この選択肢は具体的なユースケースにより決まります。仮想マシンインスタンスがインターネットに接続される場合、「Install security updates automatically」(セキュリティー更新を自動的にインストール) を推奨します。

ソフトウェア選択: OpenSSH サーバー

OpenSSH server を選択して、OpenStack クラウド内での起動時に、仮想マシンに SSH ログインできるようにします。

_images/ubuntu-software-selection.png

GRUB ブートローダーのインストール

GRUB ブートローダーをマスターブートレコードにインストールするかを確認された際、 Yes を選択します。

_images/ubuntu-grub.png

Grub 設定の詳細は “イメージがブートログをコンソールに書き込むことの確認” の節を参照してください。

CD-ROM の取り出しと再起動

残りのオプションは、すべてデフォルトを選択します。インストール完了時、CD-ROM を取り出すようプロンプトが表示されます。

_images/ubuntu-finished.png

注釈

Ubuntu 14.04 には既知のバグがあります。 続行 を選択したとき、再起動を選択していた場合でも、仮想マシンがシャットダウンします。

virsh を使用して、ディスクを取り出すために、CD-ROM が前に接続されていた場所と同じ場所に、libvirt が空のディスクを接続する必要があります。この場所は、 hdc でしょう。 virsh dumpxml vm-image コマンドを使用して、適切な接続先を確認できます。

# virsh dumpxml trusty
<domain type='kvm'>
  <name>trusty</name>
...
    <disk type='block' device='cdrom'>
    <driver name='qemu' type='raw'/>
    <target dev='hdc' bus='ide'/>
    <readonly/>
    <address type='drive' controller='0' bus='1' target='0' unit='0'/>
  </disk>
...
</domain>

ホストで root として以下のコマンドを実行して、マシンを一時停止し、ディスクを取り出し、再開します。 仮想マシンマネージャー を使用している場合、代わりに GUI を使用することもできます。

# virsh start trusty --paused
# virsh attach-disk --type cdrom --mode readonly trusty "" hdc
# virsh resume trusty

注釈

前の例では、インスタンスを一時停止し、ディスクを取り出し、インスタンスを再開しました。理論的には、インストール完了 画面でディスクを取り出すことができます。しかしながら、私たちのテストにおいて、Ubuntu インストーラーがドライブをロックして、そのときに取り出せないことを確認しています。

新規作成イメージへのログイン

インストール後に初めて起動するとき、認証ツールに関するプロンプトが表示されるかもしれませんが、そのまま Exit を選択します。そして、指定した root のパスワードを使用して、root としてログインします。

cloud-init のインストール

cloud-init スクリプトは、インスタンス起動時に起動し、メタデータサービスプロバイダーから公開鍵を取得するために、それを検索します。公開鍵は、イメージのデフォルトユーザーアカウントに置かれます。

cloud-init パッケージをインストールします。

# apt-get install cloud-init

Ubuntu イメージの構築時、 cloud-init が使用するメタデータのソースを明示的に設定する必要があります。OpenStack メタデータサーバーは、Amazon EC2 のイメージにより使用される EC2 メタデータサービスを真似ています。

イメージにより使用されるメタデータのソースを設定するために、 cloud-init パッケージに対して dpkg-reconfigure コマンドを実行します。プロンプトの表示時 EC2 データソースを選択します。

# dpkg-reconfigure cloud-init

アカウントはディストリビューションにより異なります。Ubuntu 系の仮想マシンの場合、アカウントは ubuntu という名前です。Fedora 系の仮想マシンの場合、アカウントは ec2-user という名前です。

You can change the name of the account used by cloud-init by editing the /etc/cloud/cloud.cfg file and adding a line with a different user. For example, to configure cloud-init to put the key in an account named admin, use the following syntax in the configuration file:

users:
  - name: admin
    (...)

インスタンスのシャットダウン

インスタンス内で root として以下を実行します。

# /sbin/shutdown -h now

クリーンアップ (MAC アドレスの詳細の削除)

オペレーティングシステムは、インストール中に仮想ネットワークカードの MAC アドレスを /etc/udev/rules.d/70-persistent-net.rules などの場所に記録します。しかしながら、イメージが起動するたびに、仮想ネットワークカードは別の MAC アドレスになります。そのため、この情報は設定ファイルから削除する必要があります。

virt-sysprep というユーティリティーがあります。これは、MAC アドレス参照の削除など、さまざまなクリーンアップ作業を実行します。決まった場所にある仮想マシンイメージをクリーンアップします。

# virt-sysprep -d trusty

libvirt ドメインの定義削除

これで、イメージは Image service にアップロードできる状態になっています。今後は、この仮想マシンイメージは libvirt により管理する必要がありません。virsh undefine vm-image コマンドを使用して libvirt に通知します。

# virsh undefine trusty

イメージの完成

/tmp/trusty.qcow2 イメージなどの qemu-img create コマンドを用いて作成したベースとなるイメージファイルは、アップロードできる状態になりました。例えば、openstack image create コマンドを使用すると Image service にアップロードできます。詳細は イメージの作成・更新 を参照してください。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.