当前位置: 首页 > 工具软件 > OpenNebula > 使用案例 >

Centos7 安装OpenNebula

罗淮晨
2023-12-01

一.安装前准备

1.配置

系统:Centos 7
OpenNebula版本: 5.2.1 官方文档地址

2. 修改对应主机的名称

Front-end主机名称修改

front-end 也就是OpenNebula的控制节点,所以我们命名为master。
当前主机名称可以通过如下命令查看:

# hostnamectl

通过hostnamectl工具来修改对应的主机名称,方便用户操作时明确当前操作的是控制节点。将当前主机的名称修改为master的命令如下。

 # hostnamectl --static set-hostname master
node节点主机名称修改

node节点也就是实际部署VM的主机。
将当前主机的名称修改为nodeX(X为第几个node节点)的命令如下。

 # hostnamectl --static set-hostname nodeX

3. 配置/etc/hosts 文件

Linux 的/etc/hosts是配置ip地址和其对应主机名的映射文件。通过该配置可以方便时用主机名称来代替ip。
在master节点中,编辑/etc/host文件vi /etc/hosts,添加其他node节点的配置。相应文件内容示例如下,当前有两个节点

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.131.251.101 master       
10.131.251.136 node1
10.131.251.36 node2

然后将master端的hosts文件分发到所有node节点中。

# scp /etc/hosts root@<node1 ip>:/etc/hosts
# scp /etc/hosts root@<node2 ip>:/etc/hosts

二.OpenNebula Front-end安装

Front-end节点安装参考OpenNebula 5.2 Front-end 安装指南

1. 在Centos系统上禁止SElinux功能

SElinux 可能会给OpenNebula安装带来比较多的问题,所以通过配置将其禁止。将配置文件/etc/selinux/configSELINUX=XXX对应的一行修改为SELINUX=disabled。最后重启机器。

2.添加OpenNebula repository

使用 root账户登录,向yum工具中添加OpenNebula repository,具体命令如下:

#  cat << EOT > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=http://downloads.opennebula.org/repo/5.2/CentOS/7/x86_64
enabled=1
gpgcheck=0
EOT

注意: 安装时确认为5.2版本,如是5.0或者其他版本可能无法成功安装。

3. 安装软件

在开始安装之前,我们需要启动EPEL库,在Centos上面执行如下代码:

# yum install epel-release

然后从我们之前配置的OpenNebula repository中下载安装对应的OpenNebula 需要的Front-end相关包。
在Centos中使用root账户执行如下命令:

# yum install opennebula-server opennebula-sunstone opennebula-ruby opennebula-gate opennebula-flow

4. 安装Ruby Runtime

有一些OpenNebula组件需要使用Ruby 相关的库。OpenNebula提供相应的脚本来安装对应的Ruby库和其他需要的开发库。
使用root账户执行如下命令:

# /usr/share/one/install_gems

5.启动OpenNebula

root账户切换为oneadmin账户登录;

# su oneadmin

/var/lib/one/.one/one_auth文件中存储着oneadmin账户的密码,该密码是随机生成的。
我们在启动OpenNebula之前将oneadmin的密码修改。使用如下命令,其中mypassword 是我们设定密码。

echo "oneadmin:mypassword" > ~/.one/one_auth

该命名可以在oneadmin第一次boot的时候设置相应的密码,如果不是第一次boot或者是设置失败了,我们可以使用命令oneuser passwd oneadmin mypasswd来重新设置。

通过vi工具查看/var/lib/one/.one/one_auth或者~/.one/one_auth文件来确认密码是否修改成功。

接着,我们适用systemctl工具启动相应的opennebula 和opennebula-sunstone服务。

# systemctl start opennebula
# systemctl start opennebula-sunstone

6.验证安装

在OpenNebula启动时,可以通过Linux CLI 命令或者图形化用户界面:Sunstone来验证是否成功启动。

Linux CLI 验证

在Front-end,使用oneadmin用户执行如下命令:

# 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

如何执行该命令时返回错误,可能是OpenNebula daemon没有成功启动:

# oneuser show
Failed to open TCP connection to localhost:2633 (Connection refused - connect(2) for "localhost" port 2633)

对于没有成功启动的情况,可以通过查看/var/log/one文件夹下的log文件来确认错误根源。其中one.log是错误信息文件,sched.log 是调度log文件。

Sunstone验证

通过浏览器尝试连接http://<fontend_address>:9869,用户名称为oneadmin,密码是我们之前在/var/lib/one/.one/one_auth文件中设定的密码。
如果没有启动成功,我们可以通过查看/var/log/one/sunstone.log文件来确定错误根源

注意,在浏览器尝试连接9869端口时,我们需要把防火墙关闭(每次系统reboot或者网络重启时,都需要去查看一下防火墙是否别关闭,否则无法成功连接)。
查看防火墙状态命令:systemctl status firewalld.service
关闭防火墙命令:systemctl stop firewalld.service或更彻底地阻止防火墙随开机启动:systemctl disable firewalld.service


三.OpenNebula Node节点安装

Node节点安装参看 OpenNebula 5.2 Node安装指南 官方文档

1.添加OpenNebula repository

使用 root账户登录,向yum工具中添加OpenNebula repository,具体命令如下:

#  cat << EOT > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=http://downloads.opennebula.org/repo/5.2/CentOS/7/x86_64
enabled=1
gpgcheck=0
EOT

2. 安装软件

执行如下命令行来安装node节点相关包,然后重启libvirt

# sudo yum install opennebula-node-kvm
# sudo systemctl restart libvirtd

3. 在CentOS系统上禁止SElinux 功能

SElinux 可能会给OpenNebula安装带来比较多的问题,所以通过配置将其禁止。将配置文件/etc/selinux/configSELINUX=XXX对应的一行修改为SELINUX=disabled。最后重启机器。

4.配置无密码SSH

OpenNebula Front-end通过SSH协议来控制node节点中的Hypervisor。接下来需要将云平台中所有节点和Front-end中oneadmin用户的ssh public key存放在所有机器的/var/lib/one/.ssh/authorized_keys文件中。
在Front-end 端,在oneadmin账户下,使用ssh_keyscan工具来收集所有主机的ssh public key。然后使用scp工具将信息拷贝到其他的node节点中。

#  ssh-keyscan <frontend> <node1> <node2> <node3> ... >> /var/lib/one/.ssh/known_hosts
#  scp -rp /var/lib/one/.ssh <node1>:/var/lib/one/
#  scp -rp /var/lib/one/.ssh <node2>:/var/lib/one/
#  scp -rp /var/lib/one/.ssh <node3>:/var/lib/one/
.......

在front-end端使用oneadmin账户进行验证。成功的标准是使用ssh来连接,并不需要密码。

# ssh <frontend>
# exit
# ssh <node1>
# ssh <frontend>
# exit
# exit
# ssh <node2>
# ssh <frontend>
# exit
# exit
# ssh <node3>
# ssh <frontend>
# exit
# exit

5.网络配置

在这里使用相对简单的桥接的方法来配置网络。
root用户进入/etc/sysconfig/network-scripts/文件夹下,将需要修改的网络接口配置文件备份cp ifcfg-enp2s0 /root/(以enp2s0网络接口为例)。然后配置桥接,配置文件主要有两个,一个是ifcfg-enp2s0,另一个是ifcfg-br0。可以参照如下示例来修改文件。本网络配置采用的是静态ip的配置。

# ifcfg-enp2s0 配置文件
TYPE=Ethernet
NAME=enp2s0
DEVICE=enp6s0
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
# ifcfg-br0 配置文件
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=10.131.251.36
NETMASK=255.255.254.0
GATEWAY=10.131.250.1
DNS1=202.120.224.6
NM_CONTROLLED=no

配置完成之后重启网络,systemctl restart network.service。通过brctl show命令查看网桥配置情况。
其中virbr0 是安装libvirt后自动配置的,br0是我们自己配置的。

# brctl show
bridge  name        bridge id           STP enabled     interfaces
br0         8000.20cf3001fc3e       no          enp6s0
virbr0     8000.52540084b8d6    yes         virbr0-nic

注意:
网桥的具体的名称可以随意(br0,br1..等)
但是在所有Node节点上的网桥名称需要相同

6.添加 node节点到云平台中

该工作可以使用sunstone进行配置,也可以通过CLI进行配置。下面展示使用CLI进行配置的方法。
为了添加node节点到云平台中,在master机器上使用oneadmin用户执行如下命令,其中<node01>可以是我们node节点的ip地址,也可以是对应的主机名(在第一节的第3步中已经配置),推荐使用主机名。

# onehost create <node01> -i kvm -v kvm
onehost list
  ID NAME            CLUSTER   RVM      ALLOCATED_CPU      ALLOCATED_MEM STAT
   1 localhost       default     0                  -                  - init

# After some time (20s - 1m)
onehost list
  ID NAME            CLUSTER   RVM      ALLOCATED_CPU      ALLOCATED_MEM STAT
   0 node01          default     0       0 / 400 (0%)     0K / 7.7G (0%) on

四.验证安装结果

具体的验证流程参看OpenNebula 5.2 Verify your Installation
其中需要主要以下几点:

  1. 创建完成虚拟机之后,可以通过VNC远程登录VM中。VNC登录需要将部署VM的Node节点上的防火墙关闭,相应的命令如下systemctl stop firewalld.service
  2. 期望ssh登录VM免密。可以在sunstone控制界面中设置,具体设置流程如下:
    a. 进入Sunstone控制界面-> Templates->选择一个虚拟机模板->update
    b. 在Update界面-> Context->在SSH public key 中添加需要ssh访问的VM的机器的SSH Public key

note:机器的SSH Public Key生成方法:ssh-keygen 具体使用方法参看链接,id_rsa.pub为公钥文件
note:远程ssh登录VM,需要在命令中指定对应的私钥ssh -i id_rsa root@<VM ip>


2017年06月14日 14时

 类似资料: