OpenNebula是一个非常成熟的云平台,,十分简单,但是功能十分丰富。它提供了十分灵活的解决方案,让用户能建立并管理企业云和虚拟的数据中心。
OpenNebula是专门为云计算打造的开源系统,用户可以使用Xen、KVM、VMware等虚拟化软件一起打造企业云。利用OpenNebula可以轻松构建私有云、混合云、公开云。
主控端部署:
1、hosts文件做DNS解析。
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.17.107 server01 server01.lnmp.com
192.168.17.128 master
192.168.17.129 node1
192.168.17.130 store
将所有的主机上hosts文件进行替换:
[root@master ~]# scp /etc/hosts root@192.168.17.129:/etc/hosts
The authenticity of host '192.168.17.129 (192.168.17.129)' can't be established.
ECDSA key fingerprint is SHA256:4dogA08L5gdfaA69BGekE13kzSuIP2vcRp9rsqYnpn0.
ECDSA key fingerprint is MD5:93:34:b9:61:03:cd:00:92:b9:91:3d:b6:6c:7a:84:95.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.17.129' (ECDSA) to the list of known hosts.
root@192.168.17.129's password:
hosts 100% 264 387.6KB/s 00:00
[root@master ~]#
[root@master ~]# scp /etc/hosts root@192.168.17.130:/etc/hosts
The authenticity of host '192.168.17.130 (192.168.17.130)' can't be established.
ECDSA key fingerprint is SHA256:4dogA08L5gdfaA69BGekE13kzSuIP2vcRp9rsqYnpn0.
ECDSA key fingerprint is MD5:93:34:b9:61:03:cd:00:92:b9:91:3d:b6:6c:7a:84:95.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.17.130' (ECDSA) to the list of known hosts.
root@192.168.17.130's password:
hosts 100% 264 461.2KB/s 00:00
[root@master ~]#
2、关闭SELINUX:
[root@master ~]# setenforce 0
setenforce: SELinux is disabled
[root@master ~]#
[root@master ~]# sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
3、防火墙配置:
为了能使OpenNebula正常工作,还必须配置系统防火墙开放相应的端口。目前采取的是关闭防火墙的做法。
[root@master ~]# systemctl stop firewalld && systemctl disable firewalld
4、软件源的配置:
[root@master yum.repos.d]# vim opennebula.repo
[root@master yum.repos.d]# cat opennebula.repo
[opennebula]
name=opennebula
baseurl=https://downloads.opennebula.org/repo/5.6/CentOS/7/x86_64
enabled=1
gpgkey=https://downloads.opennebula.org/repo/repo.key
gpgcheck=1
5、安装epel源:epel源将提供一些额外的软件包。
[root@master ~]# yum install -y epel-release
6、安装依赖软件包。
[root@master ~]# yum install -y gcc-c++ sqlite-devel curl-devel mysql-devel ruby-devel make
7、安装OpenNebula主控依赖。
[root@master ~]# yum -y install opennebula-server opennebula-sunstone opennebula-ruby opennebula-gate opennebula-flow
8、安装OpenNebula主控额外依赖和主程序:
先配置下国内源:
[root@master one]# gem sources -r https://rubygems.org/ -a https://gems.ruby-china.com/
https://gems.ruby-china.com/ added to sources
https://rubygems.org/ removed from sources
[root@master one]# gem install bundler --version '< 2'
Successfully installed bundler-1.17.3
Parsing documentation for bundler-1.17.3
1 gem installed
[root@master one]# /usr/share/one/install_gems
lsb_release command not found. If you are using a RedHat based
distribution install redhat-lsb
Select your distribution or press enter to continue without
installing dependencies.
0. Ubuntu/Debian
1. CentOS/RedHat/Scientific
1
Distribution "redhat" detected.
About to install these dependencies:
* gcc
* rubygem-rake
* libxml2-devel
* libxslt-devel
* patch
* gcc-c++
* sqlite-devel
* curl-devel
* mysql-devel
* openssl-devel
* ruby-devel
* make
Press enter to continue...
yum install gcc rubygem-rake libxml2-devel libxslt-devel patch gcc-c++ sqlite-devel curl-devel mysql-devel openssl-devel ruby-devel make
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* epel: mirror.01link.hk
* extras: mirrors.huaweicloud.com
* updates: mirrors.ustc.edu.cn
Package gcc-4.8.5-44.el7.x86_64 already installed and latest version
Package rubygem-rake-0.9.6-39.el7_9.noarch already installed and latest version
Package libxml2-devel-2.9.1-6.el7_9.6.x86_64 already installed and latest version
Package libxslt-devel-1.1.28-6.el7.x86_64 already installed and latest version
Package patch-2.7.1-12.el7_7.x86_64 already installed and latest version
Package gcc-c++-4.8.5-44.el7.x86_64 already installed and latest version
Package sqlite-devel-3.7.17-8.el7_7.1.x86_64 already installed and latest version
Package libcurl-devel-7.29.0-59.el7_9.1.x86_64 already installed and latest version
Package 1:mariadb-devel-5.5.68-1.el7.x86_64 already installed and latest version
Package 1:openssl-devel-1.0.2k-26.el7_9.x86_64 already installed and latest version
Package ruby-devel-2.0.0.648-39.el7_9.x86_64 already installed and latest version
Package 1:make-3.82-24.el7.x86_64 already installed and latest version
Nothing to do
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as
root will break this application for all non-root users on this machine.
Fetching source index from https://rubygems.org/
RubyGems 2.0.14.1 is not threadsafe, so your gems will be installed one at a time. Upgrade to RubyGems 2.1.0 or higher to enable parallel gem installation.
Fetching public_suffix 2.0.5
Installing public_suffix 2.0.5
Fetching addressable 2.5.2
Installing addressable 2.5.2
Fetching xml-simple 1.1.5
Installing xml-simple 1.1.5
Fetching amazon-ec2 0.9.17
Installing amazon-ec2 0.9.17
Fetching aws-sigv4 1.0.2
Installing aws-sigv4 1.0.2
Fetching jmespath 1.4.0
Installing jmespath 1.4.0
Fetching aws-sdk-core 2.11.39
Installing aws-sdk-core 2.11.39
Fetching aws-sdk-resources 2.11.39
Installing aws-sdk-resources 2.11.39
Fetching aws-sdk 2.11.39
Installing aws-sdk 2.11.39
Fetching multipart-post 2.0.0
Installing multipart-post 2.0.0
Fetching faraday 0.15.0
Installing faraday 0.15.0
Fetching faraday_middleware 0.12.2
Installing faraday_middleware 0.12.2
Fetching mini_portile2 2.1.0
Installing mini_portile2 2.1.0
Fetching nokogiri 1.6.8.1
Installing nokogiri 1.6.8.1 with native extensions
Fetching azure-core 0.1.14
Installing azure-core 0.1.14
Fetching mime-types-data 3.2016.0521
Installing mime-types-data 3.2016.0521
Fetching mime-types 3.1
Installing mime-types 3.1
Fetching systemu 2.6.5
Installing systemu 2.6.5
Fetching thor 0.20.0
Installing thor 0.20.0
Fetching azure 0.7.10
Installing azure 0.7.10
Fetching builder 3.2.3
Installing builder 3.2.3
Using bundler 1.17.3
Fetching configparser 0.1.7
Installing configparser 0.1.7
Fetching curb 0.9.4
Installing curb 0.9.4 with native extensions
Fetching daemons 1.2.6
Installing daemons 1.2.6
Fetching eventmachine 1.2.5
Installing eventmachine 1.2.5 with native extensions
Fetching hashie 3.5.7
Installing hashie 3.5.7
Fetching inflection 1.0.0
Installing inflection 1.0.0
Fetching memcache-client 1.8.5
Installing memcache-client 1.8.5
Fetching mysql2 0.5.1
Installing mysql2 0.5.1 with native extensions
Fetching net-ldap 0.16.1
Installing net-ldap 0.16.1
Fetching ox 2.9.2
Installing ox 2.9.2 with native extensions
Fetching parse-cron 0.1.4
Installing parse-cron 0.1.4
Fetching polyglot 0.3.5
Installing polyglot 0.3.5
Fetching rack 1.6.10
Installing rack 1.6.10
Fetching rack-protection 1.5.5
Installing rack-protection 1.5.5
Fetching scrub_rb 1.0.1
Installing scrub_rb 1.0.1
Fetching sequel 5.7.1
Installing sequel 5.7.1
Fetching tilt 2.0.8
Installing tilt 2.0.8
Fetching sinatra 1.4.8
Installing sinatra 1.4.8
Fetching sqlite3 1.3.13
Installing sqlite3 1.3.13 with native extensions
Fetching thin 1.7.2
Installing thin 1.7.2 with native extensions
Fetching treetop 1.6.10
Installing treetop 1.6.10
Fetching trollop 2.1.2
Installing trollop 2.1.2
Fetching uuidtools 2.1.5
Installing uuidtools 2.1.5
Fetching zendesk_api 1.16.0
Installing zendesk_api 1.16.0
Bundle complete! 23 Gemfile dependencies, 46 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
这个地方要有耐心等待,时间稍长。在获取程序和安装程序的过程中不要中断进程。
9、修改默认的oneadmin密码(这个账号密码用于登录OpenNebula的控制面板):
[root@master ~]# echo "oneadmin:910zxq" > /var/lib/one/.one/one_auth
10、启动OpenNebula:
[root@master ~]# systemctl start opennebula
[root@master ~]# systemctl start opennebula-sunstone
检查两个程序的运行状态:
[root@master one]# systemctl status opennebula
● opennebula.service - OpenNebula Cloud Controller Daemon
Loaded: loaded (/usr/lib/systemd/system/opennebula.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-10-01 09:45:30 CST; 2h 9min ago
Main PID: 1695 (oned)
CGroup: /system.slice/opennebula.service
├─1695 /usr/bin/oned -f
├─1699 ruby /usr/lib/one/mads/one_hm.rb
├─1734 ruby /usr/lib/one/mads/one_vmm_exec.rb -t 15 -r 0 kvm
├─1751 ruby /usr/lib/one/mads/one_vmm_exec.rb -l deploy,shutdown,reboot,cancel,save,r...
├─1768 /usr/lib/one/mads/collectd -p 4124 -f 5 -t 50 -i 60
├─1820 ruby /usr/lib/one/mads/one_im_exec.rb -r 3 -t 15 -w 90 kvm
├─1833 ruby /usr/lib/one/mads/one_im_exec.rb -l -c -t 15 -r 0 vcenter
├─1846 ruby /usr/lib/one/mads/one_tm.rb -t 15 -d dummy,lvm,shared,fs_lvm,qcow2,ssh,ce...
├─1866 ruby /usr/lib/one/mads/one_datastore.rb -t 15 -d dummy,fs,lvm,ceph,dev,iscsi_l...
├─1882 ruby /usr/lib/one/mads/one_market.rb -t 15 -m http,s3,one
├─1898 ruby /usr/lib/one/mads/one_ipam.rb -t 1 -i dummy
└─1910 ruby /usr/lib/one/mads/one_auth_mad.rb --authn ssh,x509,ldap,server_cipher,ser...
Oct 01 09:45:27 master systemd[1]: Starting OpenNebula Cloud Controller Daemon...
Oct 01 09:45:30 master systemd[1]: Started OpenNebula Cloud Controller Daemon.
[root@master one]# systemctl status opennebula-sunstone
● opennebula-sunstone.service - OpenNebula Web UI Server
Loaded: loaded (/usr/lib/systemd/system/opennebula-sunstone.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-10-01 11:51:14 CST; 9s ago
Process: 48182 ExecStartPre=/usr/sbin/logrotate -f /etc/logrotate.d/opennebula-sunstone -s /var/lib/one/.logrotate.status (code=exited, status=0/SUCCESS)
Main PID: 48183 (ruby)
CGroup: /system.slice/opennebula-sunstone.service
└─48183 /usr/bin/ruby /usr/lib/one/sunstone/sunstone-server.rb
Oct 01 11:51:14 master ruby[48183]: :keep_me_logged=>true,
Oct 01 11:51:14 master ruby[48183]: :lang=>"en_US",
Oct 01 11:51:14 master ruby[48183]: :table_order=>"desc",
Oct 01 11:51:14 master ruby[48183]: :mode=>"mixed",
Oct 01 11:51:14 master ruby[48183]: :marketplace_url=>"http://marketplace.opennebula.systems/",
Oct 01 11:51:14 master ruby[48183]: :oneflow_server=>"http://localhost:2474/",
Oct 01 11:51:14 master ruby[48183]: :routes=>["oneflow", "vcenter", "support"],
Oct 01 11:51:14 master ruby[48183]: :session_expire_time=>3600}
Oct 01 11:51:14 master ruby[48183]: --------------------------------------
Oct 01 11:51:15 master ruby[48183]: == Sinatra (v1.4.8) has taken the stage on 9869 for deve...Thin
Hint: Some lines were ellipsized, use -l to show in full.
看到两个程序都运行正常。
11、浏览器打开:http://192.168.17.128:9869:
使用oneadmin和密码进行登录: