在CentOS 7/CentOS 8上安装OpenNebula前端
在本指南中,我们将介绍在CentOS 7上安装OpenNebula前端的步骤。
OpenNebula是一个简单但功能丰富且灵活的解决方案,可构建和管理企业云和虚拟化数据中心。
为什么选择OpenNebula
OpenNebula将现有的虚拟化技术(如KVM和VMware)与多租户,自动配置和弹性的高级功能相结合。
其目的是使云管理变得简单。
可以将其与其他云管理平台(如Openstack和Cloudstack)进行比较。
OpenNebula组件
OpenNebula具有两个主要组件:OpenNebula前端-这是执行OpenNebula服务的管理引擎。
OpenNebula管理程序节点-这些是提供VM所需资源的管理程序。
推荐的OpenNebula前端最低规格为:
内存 | 2 GB |
CPU | 1个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.log
,sched.log
,sunstone.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 /
|传输管理器驱动程序脚本|