「OpenNebula」- 安装部署(v6.0.0.2)

  CREATED BY JENKINSBOT

问题描述

该笔记将记录:如何部署 OpenNebula 平台,并使用其来管理虚拟机,以及常见问题的解决方案。

解决方案

参考 Installation and Configuration 文档,以获取集群安装及配置的完整方法。下面是结合我们需求的整理:

第一步、准备工作

在正式开始之前,建议阅读(并实践)以下文档的内容,以对 OpenNebula 具有整体的认识:
1)官方 Overview 文档,我们能够快速了解 OpenNebula 平台的基本概念及术语。
2)官方 Quick Start 文档,我们能够使用 GitHub – OpenNebula/minione 快速部署集群,并进行常见操作。

环境信息

1)操作系统:Ubuntu 21.04
2)软件版本:OpenNebula 6.0.2

第二步、安装 MySQL 服务

1)安装过程,参考 MySQL/on Debian 笔记;

2)进行数据库初始化设置:

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. [...]

mysql> CREATE USER 'oneadmin' IDENTIFIED BY '<thepassword>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin';
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;

# vim /etc/one/oned.conf
...
DB = [ BACKEND = "mysql",
       SERVER  = "localhost",
       PORT    = 0,
       USER    = "oneadmin",
       PASSWD  = "<thepassword>",
       DB_NAME = "opennebula",
       CONNECTIONS = 25,
       COMPARE_BINARY = "no" ]
...

这里创建 /etc/one/oned.conf 的目的是:在服务部署时,服务会自动启动并初始化数据库,这样就能初始化 MySQL 数据库。否则,默认使用 sqlite 数据库,而数据库迁移会是件很繁琐的事情。

第三步、添加 OpenNebula 仓库

apt-get update
apt-get -y install gnupg wget apt-transport-https

# Ubuntu 21.04
wget -q -O- https://downloads.opennebula.io/repo/repo.key | apt-key add -
echo "deb https://downloads.opennebula.io/repo/6.0/Ubuntu/21.04 stable opennebula" > /etc/apt/sources.list.d/opennebula.list
apt-get update

第四步、安装 Web 界面

3)安装应用

# apt-get update
# apt-get -y install opennebula opennebula-sunstone opennebula-fireedge \
    opennebula-gate opennebula-flow opennebula-provision

可选,安装 Docker Hub Marketplace 依赖:

# 安装 Docker 服务
...

# 添加用户到 Docker 组
usermod -a -G docker oneadmin

可选,安装边缘集群配置组件的依赖:

apt-get -y install python3-pip
pip3 install 'cryptography<3.4'
pip3 install 'ansible>=2.8.0,<2.10.0'
pip3 install 'Jinja2>=2.10.0'
curl 'https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip' | zcat >/usr/bin/terraform
chmod 0755 /usr/bin/terraform

5)关于数据库

官方建议使用 MySQL/MariaDB 数据库。

6)配置 OpenNebula 服务

查看初始用户名密码

# cat /var/lib/one/.one/one_auth

FireEdge,为 Sunstone 提供附加功能。需要配置 Sunstone 访问 FireEdge 服务(应该是需要在页面中访问吧):

# vim /etc/one/sunstone-server.conf
...
:public_fireedge_endpoint: http://one.example.com:2616
...

# systemctl restart opennebula-sunstone.service

OneGate(可选),允许 VM 与 OpenNebula 通讯,对于由 OneFlow 服务器编排的多 VM 服务至关重要。配置方法如下:

# vim /etc/one/onegate-server.conf
...
:host: 0.0.0.0
...

# systemctl restart opennebula-gate.service

# vim /etc/one/oned.conf
...
ONEGATE_ENDPOINT="http://one.example.com:5030"
...

# systemctl restart opennebula.service

OneFlow(可选),用于编排服务和多虚拟机部署。我们需要配置 OneFlow 以允许其被远程 API 控制:

# vim /etc/one/oneflow-server.conf
...
:host: 0.0.0.0
...

# systemctl restart opennebula-flow.service

7)启动 OpenNebula 服务

按照如下顺序启动服务:

systemctl start opennebula opennebula-sunstone opennebula-fireedge opennebula-gate opennebula-flow

systemctl enable opennebula opennebula-sunstone opennebula-fireedge opennebula-gate opennebula-flow

8)验证安装

在主机中执行如下命令,并查看输出:

# oneuser show
USER 0 INFORMATION
ID              : 0
NAME            : oneadmin
GROUP           : oneadmin
PASSWORD        : 3bc15c8aae3e4124dd409035f32ea2fd6835efc9
AUTH_DRIVER     : core
ENABLED         : Yes

USER TEMPLATE
TOKEN_PASSWORD="ec21d27e2fe4f9ed08a396cbd47b08b8e0a4ca3c"

RESOURCE USAGE & QUOTAS

类似如上输出,表示 oneadmin 能够正常连接 OpenNebula 服务。

访问 Web 界面:

# firefox http://<hostname>:9869/

参考文献

OpenNebula
Docs/Deployment Guide/Node Installation/Overview/Hypervisor Compatibility
GitHub/OpenNebula