一.安装前准备
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安装
1.在Centos系统上禁止SElinux功能
SElinux 可能会给OpenNebula安装带来比较多的问题,所以通过配置将其禁止。将配置文件/etc/selinux/config中SELINUX=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节点安装
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/config中SELINUX=XXX对应的一行修改为SELINUX=disabled。最后重启机器。
4.网络配置
在这里使用相对简单的桥接的方法来配置网络。
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 namebridge id STP enabled interfaces
br0 8000.20cf3001fc3e no enp6s0
virbr0 8000.52540084b8d6yes virbr0-nic
注意:
网桥的具体的名称可以随意(br0,br1..等)
但是在所有Node节点上的网桥名称需要相同
5.添加 node节点到master端
该工作可以使用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>