Ubuntu Weekly Recipe

第345回 UbuntuとOpenNebulaでクラウド環境を構築してみよう(前編)

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

ホストセットアップ

「ホスト」は仮想マシンが稼働する物理マシンです。ホストでは下記の設定を行います。

  1. qemu-kvm/libvirtなどの依存パッケージのインストール
  2. NFSクライアント設定
  3. 仮想マシンにネットワークを提供するための設定

依存パッケージのインストール

opennebula-nodeパッケージをインストールすると依存パッケージもまとめてインストールされます。 OpenNebula.orgのリポジトリが追加されていることを確認し,opennebula-nodeをインストールします。

% cat /etc/apt/sources.list.d/opennebula.list
deb http://downloads.opennebula.org/repo/4.8/Ubuntu/14.04/ stable opennebula

% apt-cache policy opennebula-node
opennebula-node:
  インストールされているバージョン: (なし)
  候補:               4.8.0-1
  バージョンテーブル:
     4.8.0-1 0
        500 http://downloads.opennebula.org/repo/4.8/Ubuntu/14.04/ stable/opennebula amd64 Packages
     3.4.1-4.1ubuntu1 0
        500 http://jp.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

% sudo apt-get install opennebula-node

oneadminユーザーが自動的に作成されます。 また,/etc/libvirt/qemu.confが変更され,仮想マシンを起動するユーザーがoneadminに設定されます。 /etc/sudoers.d/opennebulaが作成され,OpenNebulaで必要なコマンドがoneadminユーザーからNOPASSWDのsudoで実行できるようになります。

共有ストレージの種類や仮想マシンに提供するネットワークの種類など,選択の余地があるパッケージはopennebula-nodeの依存関係ではインストールされません。別途,明示的に指定してインストールする必要があります。

NFSクライアント設定

今回はフロントエンドのoneadminホームディレクトリをNFSで共有する方法を取ります。 nfs-commonパッケージをインストールし,/etc/fstabを編集します。

% sudo apt-get install nfs-common
% sudo vi /etc/fstab
% sudo mount -a

/etc/fstabには下記の行を追記します。IPアドレスは筆者の環境のフロントエンドのものですので,適宜変更してください。

192.168.1.50:/var/lib/one/  /var/lib/one/  nfs   hard,intr,rsize=32768,wsize=32768,async  0  0

フロントエンドの/var/lib/one/がNFSマウントされていることを確認してください。 また,oneadminユーザーにスイッチしてフロントエンドとホストの双方向にノーパスフレーズでSSHログインできることを確認しておきましょう。

ブリッジインターフェース設定

仮想マシンにネットワークを提供するため,ブリッジインターフェースを作成します。 Ubuntu 14.04 Serverの場合,ネットワーク設定はNetworkManagerではなく/etc/network/interfaceでのマニュアル設定になっていると思います。これを編集してブリッジインターフェースを作成します。

まずはbridge-utilsをインストールします。

% sudo apt-get install bridge-utils

次に/etc/network/interfaceを編集します。

% sudo vi /etc/network/interfaces

今回はinterfacesに直接ブリッジ設定を書かず,interfaces.d/bridge.cfgに設定を書いてsourceスタンザで読み込むことにします。 eth0の設定部分をコメントアウトし,sourceスタンザを追記します。

auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

source interfaces.d/bridge.cfg

/etc/network/interfaces.d/bridge.cfgを作成し,ブリッジの設定を記述します。

% sudo vi /etc/network/interfaces.d/bridge.cfg

今回はstaticにアドレスを振ることにします。下記は筆者の環境の例です。アドレスは適宜変更してください。

auto eth0
iface eth0 inet static
        address 0.0.0.0

auto br0
iface br0 inet static
        address 192.168.1.33
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

編集後,マシンを再起動するなどして設定を反映させてください。

後編では

フロントエンドとホストの準備が整いましたが,この時点ではフロントエンド上のonedはホストを認識していません。

後編では,ホストやネットワークやディスクイメージなどのリソース情報をonedに登録し,OpenNebula環境を組み立てて行きます。また,組み上がったOpenNebula環境で実際に仮想マシンを起動してログインしてみます。

著者プロフィール

大田晃彦(おおたあきひこ)

株式会社 創夢 所属。UbuntuとGentooでアニメを録画したりしながら暮らしています。全体的に浅いです。