Ubuntu Weekly Recipe

第483回 UbuntuとOpenNebulaでもういちどクラウド環境を構築してみよう

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

フロントエンドのセットアップ

OpenNebulaデーモンの稼働するフロントエンドは,物理マシンやネットワークアドレス,イメージファイルなどのリソース情報の管理やスケジューリングを司ります。また,今回はWebインタフェースのSunstoneやCLIもフロントエンドにインストールします※4)⁠

※4
SunstoneやCLIなどはフロントエンドとは別のマシンにインストールすることも可能です。

フロントエンド向けパッケージのインストール

apt installで以下のパッケージをインストールします。今回の記事では触れないOneGateやOneFlowといった関連パッケージも一緒にインストールしています。

$ sudo apt install opennebula opennebula-sunstone opennebula-gate opennebula-flow

続いてinstall_gemsスクリプトを実行します。install_gemsスクリプトはビルドに必要なパッケージをインストールした後に依存するRubyライブラリをインストールします。

$ sudo /usr/share/one/install_gems
(略)
About to install these dependencies:
* gcc
* rake
* libxml2-dev
* libxslt1-dev
* patch
* g++
* libsqlite3-dev
* libcurl4-openssl-dev
* libmysqlclient-dev
* ruby-dev
* make

Press enter to continue... (Enterキーを押下)
(略)

OpenNebulaサービスの開始

フロントエンドでOpenNebulaサービスを開始できる状態となりました。さっそくsystemctlコマンドで起動してみましょう。

$ sudo systemctl start opennebula.service
$ sudo systemctl start opennebula-sunstone.service

確認のためUNIXアカウントのoneadmin権限でoneuserコマンドを実行してみます。以下のような出力があれば,OpenNebulaデーモンのonedは問題なく起動できています。

$ sudo -u oneadmin oneuser show
USER 0 INFORMATION
ID              : 0
NAME            : oneadmin
GROUP           : oneadmin
(略)

Webブラウザでフロントエンドマシンのポート9869番にアクセスし,Sunstoneが起動していることを確認します。

http://(フロントエンドのアドレス):9869/

図2 Sunstoneのログイン画面

画像

この時点でSunstoneにはOpenNebulaの管理者アカウントoneadminでログインできます。パスワードはフロントエンドの/var/lib/one/.one/one_authに記載されています。":"で区切られた右側がOpenNebulaデーモン初回起動時にランダムで作成されたoneadminアカウントのパスワードです。

$ cat /var/lib/one/.one/one_auth
oneadmin:(パスワード文字列)

問題なければsystemdから自動起動するよう設定しておきましょう。

$ sudo systemctl enable opennebula.service
$ sudo systemctl enable opennebula-sunstone.service

ホストのセットアップ

仮想マシンインスタンスが稼働するホストをセットアップします※5)⁠

※5
ホストとフロントエンドを同居してAll in One構成にすることも可能です。お試し用途であればAll in One構成で構築してみるのもいいでしょう。

Linux環境ではハイパーバイザはKVMを使用します。バージョン4系列まではXen用のドライバスクリプトが用意されていましたが,5系列からはAdd-onとして別途追加する形式になっています。その他にもLXDを使用するAdd-onなどがコミュニティにより提供されています。

ホスト向けパッケージのインストール

ホストはopennebula-nodeパッケージをインストールします。これによりqemu関連やlibvirt関連等の依存パッケージのインストール,UNIXアカウントのoneadminの作成,OpenNebula用の設定ファイルの配置などが行われます。

apt policyでインストール候補が5.4.0-1となっていることを確認します。

$ apt policy opennebula-node
opennebula-node:
  Installed: (none)
  Candidate: 5.4.0-1
  Version table:
     5.4.0-1 500
        500 https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable/opennebula amd64 Packages
        500 https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable/opennebula i386 Packages
     4.12.3+dfsg-3build1 500
        500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial/universe amd64 Packages
        500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial/universe i386 Packages
$ sudo apt install opennebula-node

opennebula-nodeパッケージがインストールされるタイミングでlibvirt関連の設定ファイルがOpenNebula用に書き換わるため,libvirt-binを再起動します。

$ sudo systemctl restart libvirt-bin.service

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

仮想マシンへのネットワーク提供用にブリッジインターフェースを作成します。今回はbridge-utilsを使用します。

$ sudo apt install bridge-utils

Ubuntu Server 16.04はデフォルトでは/etc/network/interfaceにインタフェース設定が記述されています。これをコメントアウトします。

$ sudo vi /etc/network/interfaces
(以下をコメントアウト)
# The primary network interface
#auto enp3s0
#iface enp3s0 inet dhcp

次に/etc/network/interfaces.d/以下にブリッジインタフェース用の設定ファイルを作成します。ブリッジインタフェース名は任意で構いませんが,ホスト間で統一しておく必要があります。この例では「br0」としています。

$ sudo vi /etc/network/interfaces.d/bridge.cfg
auto enp3s0
iface enp3s0 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
    dns-nameservers 192.168.1.14
    dns-search example.org
    bridge_ports enp3s0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

なお,NICのインタフェース名(この例ではenp3s0)は環境によって異なりますので,適宜読み替えてください。

上記を設定後,ホストマシンを再起動します。

著者プロフィール

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

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

コメント

コメントの記入