それが僕には楽しかったんです。

僕と MySQL と時々 MariaDB

DevStackでOpenStackを導入しようとした時に躓いた話

はじめに

どうも、最近海外ドラマを見ているときのハラハラに耐えられず結末を見てから鑑賞することがやめられないけんつです。
最近OpenStackの環境構築でやたら躓いた部分があったが、まぁ情報が少ないこと少ないことと困ったのでまとめます。

前提条件

OSはUbuntu 18.04を最小構成でインストールした直後として
linux kernel は 4.18.0-20-generic を使用する環境で devstack を使った場合を想定しています。

stackユーザを作ることや、レポジトリのクローンは全て以下のドキュメント準拠で行いました。
docs.openstack.org

ハマりまくった部分

ブランチ問題

これは最初に引っかかった部分で、devstackを使った場合の手順などを紹介している諸々のブログではブランチ(バージョン)を指定してクローンしている。
しかし、Ubuntu 18.04で古いブランチを指定してしまうと途中のpip周りで導入するライブラリのバージョンが衝突する場合がありインストールが終わらない。

これはmasterブランチを利用することで解決できる。

インストール時のトラブルシュート

1. Could not install packages due to an EnvironmentError

この記述がdevstackのインストール中に表示された場合は該当するライブラリをpip3 or pipを使って手動でインストールする必要がある。

$ pip3 [or pip] install [library name] --user
2. env: ‘/opt/stack/requirements/.venv/bin/pip’: No such file or directory

pipを使ってvirtualenvを導入するのに失敗しているため以下のコマンドを実行することで解決する。
~/devstack$ virtualenv ../requirements/.venv/

3.libvirtd failed to start
$ systemctl status libvirtd

まず上記のコマンドでステータスを確認する。
Loadedになっている状態であれば以下のコマンドを Failed になっている場合はエラー内容を確認して対処する。
Loaded の場合はサービスの再起動を試してみる

$ systemctl restart livirtd

このとき以下のようなメッセージが表示されたログを確認しても何も無い場合はlibvirtdをaptで導入し再起動すると解決した。

please check journalctl -xe ...
$ sudo apt update
$ sudo apt install libvirtd
$ sudo reboot

DevStackで構築したあとのトラブルシュート

1. [Openstack] [Glance] Error 503 when creating image

このエラーはインスタンスイメージの登録時に起こることがあった。

OpenStackのユーザプルダウンメニューからopenstackrcをダウンロードし

$ source ./[ユーザ名]-openrc.sh

と実行する。
そのあとに以下のコマンドを実行することで解決された。

$ openstack user set --password glance glance
2. Missing value auth-url required for auth plugin password

openstackコマンド実行時に表示されることがあります。環境変数が正しく1.の手順で設定されていないことが原因だと考えられる。

$ export | grep "OS_"

そのため、このコマンドで環境変数がexportされていることを確認する。
上記のコマンドで何も表示されない場合は、1.の手順を確実に行う。そのときsourceコマンド以外で実行するとexportが設定されないということにも注意が必要。
自分が引っかかったのはここだった。

3. No valid host was found. There are not enough hosts available.

インスタンスイメージの形式がkvmになっている場合にqemu2のイメージを登録する際に発生する。
/etc/nova/nova.confのvirt_typeをkvmからqemuにするか追加することで解決する。