在CentOS 7/CentOS 8上安装OpenNebula前端

时间:2020-02-23 14:31:20  来源:igfitidea点击:

在本指南中,我们将介绍在CentOS 7上安装OpenNebula前端的步骤。
OpenNebula是一个简单但功能丰富且灵活的解决方案,可构建和管理企业云和虚拟化数据中心。

为什么选择OpenNebula

OpenNebula将现有的虚拟化技术(如KVM和VMware)与多租户,自动配置和弹性的高级功能相结合。
其目的是使云管理变得简单。
可以将其与其他云管理平台(如Openstack和Cloudstack)进行比较。

OpenNebula组件

OpenNebula具有两个主要组件:OpenNebula前端-这是执行OpenNebula服务的管理引擎。
OpenNebula管理程序节点-这些是提供VM所需资源的管理程序。

推荐的OpenNebula前端最低规格为:

内存2 GB
CPU1个CPU(2核)
磁盘大小100 GB
网络2 NICS

OpenNebula前端计算机需要与所有主机建立网络连接,并且可能需要访问存储数据存储(通过直接安装或者通过网络)。
OpenNebula的基本安装占用不到150MB。

在CentOS 7上安装OpenNebula前端

其中我们将逐步完成所有步骤,以启动OpenNebula前端引擎并在CentOS 7服务器上运行。
我假设我们已经有一个正在运行的CentOS 7实例,它可以是虚拟机或者物理服务器。

第1步:添加OpenNebula和epel信息库

运行以下命令以在CentOS 7上添加OpenNebula存储库。
以root用户身份运行以下命令

sudo tee /etc/yum.repos.d/opennebula.repo<< EOT 
[opennebula]
name=opennebula
baseurl=https://downloads.opennebula.org/repo/5.9/CentOS/7/x86_64
enabled=1
gpgkey=https://downloads.opennebula.org/repo/repo.key
gpgcheck=1
EOT

安装时,请检查OpenNebula的最新版本。
撰写本文时,最新版本为5.9.

步骤2:停用SELinux,进行系统更新并重新启动。

在强制模式下,OpenNebula与SELinux不能很好地配合使用。
让我们禁用它。

sudo setenforce 0
sudo sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config

做系统更新:

sudo yum -y install epel-release
sudo makecache fast
sudo yum -y update
sudo systemctl reboot

步骤3:安装和配置MySQL数据库

由于我们要将OpenNebula配置为使用MySQL而不是SQLite,因此我们对其进行配置。
首先,使用以下命令安装MariaDB服务器和客户端:

sudo yum -y install mariadb-server mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb

使用命令为MariaDB设置root密码。

sudo mysql_secure_installation

为OpenNebula创建数据库和用户。

$mysql -u root -p
CREATE DATABASE opennebula;
GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY 'StrongPassword';
FLUSH PRIVILEGES;

步骤4:安装OpenNebula前端软件包

这些是OpenNebula CentOS存储库上可用的软件包:opennebula:命令行界面。

opennebula-server:主OpenNebula守护程序,调度程序等。

opennebula-sunstone:Sunstone(GUI)和EC2 API。

opennebula-ruby:Ruby绑定。

opennebula-java:Java绑定。

opennebula-gate:在VM和OpenNebula之间启用通信的OneGate服务器。

opennebula-flow:OneFlow管理服务和弹性。

opennebula-node-kvm:安装oneadmin用户libvirt和kvm的元软件包。

opennebula-common:OpenNebula软件包的通用文件。
我们将安装:

sudo yum -y install opennebula opennebula-server \
opennebula-sunstone opennebula-ruby opennebula-gate \
opennebula-flow

我们可以使用以下方法确认已安装软件包的列表:

$sudo rpm -qai | grep openne | grep Name | cut -d: -f2
opennebula-flow
opennebula
opennebula-server
opennebula-gate
opennebula-common
opennebula-ruby
opennebula-sunstone

步骤5:Ruby运行时安装。

一些OpenNebula组件需要Ruby库。
OpenNebula提供了一个脚本来安装必需的gem以及一些所需的开发库软件包。
以root身份执行:

# /usr/share/one/install_gems

系统会提示我们选择操作系统并进行确认。

Select your distribution or press enter to continue without
installing dependencies.
0. Ubuntu/Debian
1. CentOS/RedHat/Scientific

选择1,然后在下一个提示符下按Enter。

步骤6:配置OpenNebula数据库

然后打开 oned.conf文件并进行编辑以添加MySQL数据库设置。

sudo vim /etc/one/oned.conf

取消注释行:

DB = [ BACKEND = "sqlite" ]
to
#DB = [ BACKEND = "sqlite" ]

然后加:

DB = [ backend = "mysql",
 server = "localhost",
 port = 0,
 user = "oneadmin",
 passwd = "StrongPassword",
 db_name = "opennebula" ]

用我们之前为数据库指定的密码替换StrongPassword。
确认用户可以登录数据库。

$mysql -u oneadmin -p

步骤7:配置oneadmin凭据

通常将随机生成的文件放在文件/var/lib/one/.one/one_auth中。

# cat /var/lib/one/.one/one_auth
oneadmin:b82f13701914afc9e3c6aea69f180109

如果我们需要更改密码,请在此处进行。

# su - oneadmin
$echo "oneadmin:mypassword" > ~/.one/one_auth

这将在首次启动时设置oneadmin密码。
从那时起,我们必须使用以下命令更改oneadmin的密码。

$oneuser passwd

步骤8:配置防火墙

我们接近最后一步。
我们需要配置防火墙以允许OpenNebula所需的特定端口。
检查我们是否启用了防火墙服务。

$sudo firewall-cmd --state
running

如果正在运行,请打开访问Sunstone Web界面所需的端口。

sudo firewall-cmd --add-port=9869/tcp --permanent
sudo firewall-cmd --reload

步骤9:启动OpenNebula守护程序。

使用systemd服务管理命令来启动OpenNebula服务。

systemctl start opennebula opennebula-sunstone
systemctl enable opennebula opennebula-sunstone

步骤10:验证安装和访问Sunstone UI

首次启动OpenNebula后,应检查命令是否可以连接到OpenNebula守护程序。
我们可以在Linux CLI或者图形用户界面中进行此操作:Sunstone。
在前端的CLI中,以oneadmin身份运行以下命令:

# su - oneadmin -c "oneuser show"
USER 0 INFORMATION
ID : 0
NAME : oneadmin
GROUP : oneadmin
PASSWORD : e6a7ce61b035faf07f4d98319dd99b19912b1bed
AUTH_DRIVER : core
ENABLED : Yes
TOKENS
USER TEMPLATE
TOKEN_PASSWORD="58bb386f7b00453481b40e88cda4fea99b9390e0"
RESOURCE USAGE & QUOTAS

如果收到错误消息,则说明OpenNebula守护进程无法正确启动。
OpenNebula日志位于/var/log/one中,即:oned.log –核心日志。
错误消息将位于此处。
前缀为[E] sched.log –计划程序日志位于此处。

访问Sunstone UI

现在,我们可以尝试登录到Sunstone Web界面。
为此,请将浏览器指向:

http://<fontend_address>:9869

如果一切正常,我们将看到一个登录页面。

用户是oneadmin,密码是前端文件/var/lib/one/.one/one_auth中的密码。
登录后,我们将获得如下所示的仪表板。

OpenNebula前端目录结构

下表列出了安装后前端中可用的一些值得注意的路径:

|||
| --- - | --- |
| /etc/one/|配置文件|
| /var/log /one/| 日志文件,值得注意的是:oned.logsched.logsunstone.log<vmid> .log|
| /var/lib /one/| oneadmin主目录|
| /var/lib /one/datastores/<dsid> /|存储数据存储|
| /var/lib /one/vms/<vmid> /| VMS的操作文件(部署文件,传输管理器脚本等......)|
| /var/lib /one/.one/one_auth| oneadmin凭证|
| /var/lib /one/remotes /|将同步到主机的探针和脚本|
| /var/lib /one/remotes/hooks /|钩子脚本|
| /var/lib /one/remotes/vmm /|虚拟机管理器驱动程序脚本|
| /var/lib /one/remotes/auth /|身份验证驱动程序脚本|
| /var/lib /one/remotes/im /|信息管理器(监控)驱动程序脚本|
| /var/lib /one/remotes/market/|市场驱动程序脚本|
| /var/lib /one/remotes/datastore /|数据存储驱动程序脚本|
| /var/lib /one/remotes/vnm /|网络驱动程序脚本|
| /var/lib /one/remotes/tm /|传输管理器驱动程序脚本|