ビビリフクロウの足跡

いつもお世話になっているインターネットへの恩返し

oVirt用のクラウドイメージテンプレートの作り方

またまたoVirtネタです。oVirtではcloud-initを使ってテンプレートからVMをプロビジョニングし、ネットワークなどの初期設定を行うことができます。これを実現するにはプロビジョニング元のテンプレートにcloud-initをインストールする必要があるのですが、単純にインストールするだけですとうまく初期設定ができずにはまったので、メモとして残しておきます。今回作ったのはCentOS7.4、Ubuntu16.04、Debian9のイメージです。

CentOS7.4イメージの作り方

  • Minimal installでOSをインストール
  • cloud-initをインストール。ですが、OS標準のYumリポジトリからインストールするのではなく、それよりも新しいバージョンのパッケージをcurlで引っ張ってきてインストールする。

参考URL: https://bugzilla.redhat.com/show_bug.cgi?id=1492726

# curl -O https://people.redhat.com/rmccabe/cloud-init/cloud-init-0.7.9-20.el7.x86_64.rpm
# yum -y install cloud-init-0.7.9-20.el7.x86_64.rpm
  • 必要に応じて、ovirt-guest-agentをインストール

手順URL: https://www.ovirt.org/documentation/how-to/guest-agent/install-the-guest-agent-in-centos/

Ubuntu16.04、Debian9のインストール

  • Minimal installでOSをインストール
  • cloud-initをインストール。その後、/etc/network/interfacesを以下のように書き換える。
$ sudo apt-get install cloud-init
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# See LP: #1262951
source /etc/network/interfaces.d/*
  • 必要に応じて、ovirt-guest-agentをインストール。ただしインストール後、正常にサービスを起動するには以下の手順が必要。

手順URL(Ubuntu): https://www.ovirt.org/documentation/how-to/guest-agent/install-the-guest-agent-in-ubuntu/

手順URL(Debian): https://www.ovirt.org/documentation/how-to/guest-agent/install-the-guest-agent-in-debian/

$ sudo vi /etc/ovirt-guest-agent.conf
...
[virtio]
# device = /dev/virtio-ports/com.redhat.rhevm.vdsm
device = /dev/virtio-ports/ovirt-guest-agent.0     # この行を追加
...
$ sudo vi /etc/udev/rules.d/55-ovirt-guest-agent.rules # 新規作成
SYMLINK=="virtio-ports/ovirt-guest-agent.0", OWNER="ovirtagent", GROUP="ovirtagent"