oneadminアカウント
miniONEでインストールした場合,
たとえばダウンロード済みのイメージを表示するoneimage list
」
$ oneimage list ONE_AUTH file not present
それに対して,
$ sudo -i -u oneadmin oneimage list ID USER GROUP NAME DATASTORE SIZE TYPE PER STAT RVMS 1 oneadmin oneadmin Ubuntu 18.04 default 2.2G OS No rdy 0 0 oneadmin oneadmin Ubuntu 20.04 default 2.2G OS No used 1
また作成した仮想マシンインスタンスにログインする際のSSH鍵もoneadminアカウントに紐付けられています。インスタンス作成後,
$ sudo -i -u oneadmin ssh root@インスタンスのIPアドレス
OpenNebulaをCLIから操作するのであれば,sudo -i -u openadmin bash
」
ちなみにウェブインターフェース--vm-password
」
もちろん,
OpenNebulaのアンインストール
「--purge
」
$ sudo bash minione --purge Really uninstall? [yes/no]: yes ### Uninstalling Stopping OpenNebula SKIP Uninstalling OpenNebula packages OK Stopping DNSMasq OK Unconfiguring repositories OK Unconfiguring NAT using iptables OK Deleting bridge interface minionebr OK Deleting /etc/one OK Deleting oneadmin user SKIP Deleting /var/lib/one OK
おおよそは元通りにしてくれるのですが,apt-key
で追加したOpenNebulaのリポジトリ鍵はそのまま残るため,apt-key list
コマンドで表示されるsudo apt-key del "鍵ID"
」
もしminiONEによるインストール途中で失敗した場合などは,--force
」--purge
」
トラブルシューティング
miniONEはシェルスクリプトとして作成されています。中身は比較的シンプルですので,
デバッグログを仕込む際に注意すべきなのは,check
関数経由で実行しているという点です。
check() {
(中略)
STDERR_TMP_FILE=$(mktemp)
STDOUT_TMP_FILE=$(mktemp)
[[ ${VERBOSE} = 'yes' ]] && echo -ne "${TEXT} "
I=1
while [[ $I -le $TRIES && $RC -gt 0 ]]; do
eval "${COMMAND}" 2>"${STDERR_TMP_FILE}" >"${STDOUT_TMP_FILE}"
RC=$?
if [ $RC -gt 0 ]; then
[[ "$ON_FAIL" = "" && $TRIES -gt 1 ]] && echo -ne "retry $I "
sleep 1
fi
I=$((I + 1))
done
(後略)
}
この関数はコマンド
どうしてもcheck
関数の挙動を把握した上で,
- ※2
- ちなみにminioneスクリプトには
「 --verbose
」オプションがあります。このオプションは実行の進捗を出力するという意味では 「verbose」 なのですが, その目的は各ステップの 「OK・ SKIP・ FAIL」 などを出力するかどうかを判断するためのものです。つまり 「quietではない」 程度の意味しかありません。
また,
- 「Image download reached timeout」
と表示されてエラー終了する - 「Exporting [XXX] from Marketplace to local datastore」
が表示されたあとに無言で終了する
前者は,
IMAGE_WAIT_TIMEOUT=300
後者はMarketPlaceのメタデータの同期待ちで発生するようです。具体的には次のコードの部分です。
poll_for_marketplace() {
APP_COUNT=$(onemarketapp list | wc -l)
for I in $(seq 30); do
sleep 5
NEW_APP_COUNT=$(onemarketapp list | wc -l)
if [[ "${NEW_APP_COUNT}" = "${APP_COUNT}" && "${APP_COUNT}" -gt 20 ]]; then
return 0
fi
APP_COUNT=${NEW_APP_COUNT}
done
return 1
}
OpenNebulaのインストール直後はメタデータの同期ができていないのか,openmarketapp list
」
「Exporting [XXX] from Marketplace to local datastore」seq 30
」
LXDのGUIとしてOpenNebulaを使えるのか
miniONEにはLXD実行環境を用意するための--lxd
」
OpenNebulaのLXD対応は,
現時点ではあくまで
- ※3
- 個人的にはLXDをウェブから管理するツールがほしいので,
OpenNebulaがそれを担ってくれると助かるのですが。