(若是要添加映像須要給200G以上給/var/lib/one,本文是共享/var/lib/one實現監控,用映像出建立虛擬機原理是從opennebula控制平臺datastores中的映像複製到主機 datastores,並且映像需APP那下載,本身作的映像不識別,故未使用網頁建立虛擬機前端
關閉selinuxnode
systemctl stop firewalld #關閉防火牆python
systemctl disable firewalldmysql
yum -y install epel-release (必定要有擴展庫否則安裝opennebula會報錯依賴rubygem-nokogiri之類)linux
增長opennebula源 web
cd /etc/yum.repos.d/sql
vi opennebula.repo數據庫
Opennebula的yum源:vim
[opennebula]後端
name=opennebula
baseurl=http://downloads.opennebula.org/repo/5.0/CentOS/7/x86_64/
enabled=1
gpgcheck=0
yum clean all
yum install -y *libxslt-dev* *libxml2-dev* openssl openssl-devel
###gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
#修改ruby源爲國內源
gem source –l
gem update –system 升級 rubygems
升級ruby(後面gem 要求ruby版本)
wget -c https://ruby.taobao.org/mirrors/ruby/2.2/ruby-2.2.4.tar.gz
tar -zxf ruby-2.2.4.tar.gz;cd ruby-2.2.4
./configure --prefix=/opt/ruby
make -j4&&make install -j4 #根據CPU核數適當選擇
設置環境變量
export RUBY_HOME=/opt/ruby
export PATH=$RUBY_HOME/bin:$PATH
##export GEM_PATH=/usr/share/gems
####export GEM_HOME=/usr/share/gem
yum install opennebula* -y
安裝可能報依賴報錯
yum install opennebula* -y --skip-broken
根據提示安裝各類依賴包
我這須要安裝如下包
yum install -y atlas blas genisoimage glusterfs glusterfs-api glusterfs-client-xlators glusterfs-libs gperftools-libs gssproxy keyutils lapack libbasicobjects libcollection libevent libini_config libiscsi libnfsidmap libpath_utils librbd1 libref_array libtalloc libtevent libtirpc libunwind libusal libverto-tevent nfs-utils numpy python-backports python-backports-ssl_match_hostname python-nose python-setuptools qemu-img quota quota-nls rpcbind tcp_wrappers xmlrpc-c
yum install opennebula* -y
/usr/share/one/install_gems #組件包的安裝
在這個過程當中會安裝不少的組件:
例如:
gcc
rubygem-rake
libxml2-devel
libxslt-devel
sqlite-devel
curl-devel
mysql-devel
ruby-devel
Make
Redhat 7 啓動 opennebula的方式:
/bin/systemctl start opennebula.service
/bin/systemctl start opennebula-sunstone.service #(啓動有問題能夠oneadim用戶嘗試下one start ;sunstone-server start)
systemctl start rpcbind.service
systemctl start nfs.service
Oneuser show #查看opennebula服務是否啓動
Lsof -i:9869 #查看web管理是否啓動
報錯查看日誌在/var/log/one 有些內核錯誤日誌可能在messages中
gem instal sinatra
ruby -S gem which sinatra #查看是否安裝成功
安裝過程總結:
安裝的時候,會給opennebula建立一個管理員的用戶,用戶名是opennebula
用戶密碼查看:在oneadmin用戶的家目錄裏面能夠查看到
[root@front-end225 ~]# su - oneadmin
[oneadmin@front-end225 ~]$ cd .one/
[oneadmin@front-end225 .one]$ cat one_auth
oneadmin:c645814f036f9a90b581b769f73e3092
當安裝好了包之後,
1,首先要修改 one的密碼文件。
2,修改 one.conf把數據庫修改爲爲mysql
3,建立mysql的庫,(opennebula)
4,nfs
5,免祕SSH
6,修改 數據倉庫的值,以及修改配置文件DATASTORE_LOCAL
默認OpenNebula數據存儲使用sqlite,若是須要使用MySQL,則須要作以下操做
安裝 MySQL Repository:
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
安裝 MySQL Server, MySQL client 已經包括在 server 套件內:
# yum install mysql-community-server
開機自動啓動mysql
# /usr/bin/systemctl enable mysqld
啓動mysql
# /usr/bin/systemctl start mysqld
建立數據庫
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '密碼';
mysql> flush privilege
修改配置文件以下 [用戶、端口、密碼、庫名和實際狀況對應修改
[root@front-end225 ~]# vi /etc/one/oned.conf
DB = [ backend = "mysql",
server = "localhost",
port = 3306,
user = "oneadmin",
passwd = "oneadmin",
db_name = "opennebula" ]
這裏的用戶密碼,就是上面建立數據庫時建立的用戶和密碼。
修改sunstone默認監聽IP:(5.0已不用修改)
[root@front-end225 ~]# vi /etc/one/sunstone-server.conf
:host: 0.0.0.0
:port: 9869
這裏是控制檯前段的登陸的地址,IP:端口
漢化
4.2版本以上官方包默認支持中文
vim /etc/one/sunstone-server.conf
sunstone-server restart
或
修改datastore (5以上版本無需修改)
Opennebula默認使用的是 Shared Transfer Driver 這種模式比較適合快速部署和熱遷移,只是要配置網絡文件系統。若是沒有網絡文件系統,不想作熱遷移,那麼能夠換成SSH Transfer Driver 的部署方式:
[oneadmin@front-end225 ~]$ onedatastore list
ID NAME SIZE AVAIL CLUSTER IMAGES TYPE DS TM STAT
0 system - - DEV-vlan55-1 0 sys - ssh on
1 default 140G 34% - 6 img fs ssh on
2 files 140G 34% DEV-vlan55-1 0 fil fs ssh on
修改方式:
[oneadmin@front-end225 ~]$ onedatastore update 0
BASE_PATH="/var/lib/one//datastores/"
SHARED="NO"
TM_MAD="ssh"
TYPE="SYSTEM_DS"
TM_MAD = 「ssh」這裏就是ssh的方式。咱們本身的環境用這個方式的目的是。
若是不用這種傳輸方式,那麼建立的虛擬機鏡像磁盤等,是建立的opennebla的本地上。用了這種方式之後,能夠把磁盤,鏡像等等,傳輸到想要建立的物理機上面。
添加NFS共享存儲目錄
[root@front-end225 ~]# cat /etc/exports
/var/lib/one *(rw,sync,no_subtree_check,root_squash,anonuid=9869,anongid=9869)
啓動服務
systemctl start rpcbind.service
systemctl start nfs.service
添加SSH公共KEY
# su - oneadmin
vi ~/.ssh/config
添加如下內容
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
修改文件權限
chmod 600 ~/.ssh/config
修改oneadmin密碼
#su oneadmin
$passwd oneadmin
註釋:這裏最好不要修改密碼,修改了屢次都發現報錯。並且查看密碼方式很簡單,在上面有介紹。
節點安裝:也就是存儲kvm虛擬機的地方。
[root@kvmhots61 ~]# cat /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl= http://downloads.opennebula.org/repo/5.0/CentOS/7/x86_64/
enabled=1
gpgcheck=0
yum –y install opennebula-node-kvm
啓動
/bin/systemctl start messagebus.service
/bin/systemctl start libvirtd.service
systemctl enable messagebus.service
systemctl enable libvirtd.service
給系統網卡作橋接
[root@kvmhots61 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br2
DEVICE=br2
TYPE=Bridge
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=192.168.55.61
PREFIX=24
GATEWAY=192.168.55.254
[root@kvmhots61 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPV6INIT=no
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br2
掛載front-end 中共享出來的nfs文件夾:
把下面寫到分區表當中:
192.168.55.225:/var/lib/one/ /var/lib/one/ nfs soft,intr,rsize=8192,wsize=8192 0 0
而後掛載:mount –a 檢查掛載。
到這裏基本 搭建完畢。
這裏就簡要介紹部分功能。
在平臺上面添加host機器:
onehost create 192.168.55.62 -i kvm -v kvm -n dummy
命令介紹:添加192.168.55.62 ,-i 參數指定的是虛擬化驅動類型爲kvm,-v指定虛擬化類型爲kvm,-n 指定虛擬機的網絡類型爲 dummy,即默認使用橋接模式。
查看:host機器
[oneadmin@front-end225 ~]$ onehost list
ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT
5 192.168.55.72 DEV-vlan5 3 600 / 1000 (60%) 18G / 31.3G (57%) on
6 192.168.55.73 DEV-vlan5 4 700 / 1000 (70%) 20G / 31.3G (63%) on
7 192.168.55.74 DEV-vlan5 4 900 / 1000 (90%) 24G / 31.3G (76%) on
在建立過程當中 host有兩個狀態,首先是 init(初始化),而後是 on(開機)
添加網絡:
[oneadmin@front-end225 ~]$ cat vm-network1.one
NAME = "inside-network"
BRIDGE = br2
AR = [
TYPE = IP4,
IP = 192.168.55.100,
SIZE = 30
]
寫好要添加的網絡的配置文件; NAME爲名稱,BRIDGE是用什麼網絡方式,TYPE是類型,IP是隻該網絡的起始IP地址,SIZE是指該網絡配置文件的IP個數。此文件就表示,從192.168.55.100--192.168.55.129 的IP地址。
後面還有不少後臺操做的命令,好比:添加鏡像,添加模板,建立虛擬機,這些均可以從網絡上面找到,後面也有一個PDF,所以不詳細介紹。
輸入開始咱們設置的監聽的IP地址以及端口在瀏覽器中。而後在oneadmin下面找到用戶和密碼的配置文件並登錄網頁。
上面幾個圖就是建立好的opennebula前端。具體怎麼在頁面上面操做,能夠參考opennebula的PDF,如今,介紹幾個必要重要的地方。
假設咱們已經瞭解虛擬機建立,那麼要注意以下問題,以及PDF裏面沒有說起到的問題:
重點1:自動生成網卡的設置。
Opennebula是能夠自動給虛擬機建立網卡的,那麼是經過什麼方式建立網卡的呢?
首先,在kvm的鏡像模板裏面必需要安裝一個包:one-context_4.10.0.rpm
這個包就是讓opennebula的context和鏡像之間的交互,能夠在裏面自動建立網卡,等等。
在kvm的guest裏面查看:
[root@template home]# ll /etc/one-context.d/
total 32
-rwxr-xr-x. 1 root root 4433 Jan 15 2015 00-network
-rwxr-xr-x. 1 root root 1991 Jan 15 2015 01-dns
-rwxr-xr-x. 1 root root 1550 Jan 15 2015 02-ssh_public_key
-rwxr-xr-x. 1 root root 28 Jan 15 2015 03-selinux-ssh
-rwxr-xr-x. 1 root root 15 Jan 15 2015 04-mount-swap
-rwxr-xr-x. 1 root root 614 Jan 15 2015 05-hostname
-rwxr-xr-x. 1 root root 297 Jan 15 2015 99-execute-scripts
這個黃色背景的是建立網絡的配置文件。
在opennebula的機器上面查看添加的網絡地址:
[oneadmin@front-end225 62]$ pwd
/var/lib/one/vms/62
[oneadmin@front-end225 62]$ cat
context.sh deployment.0 transfer.0.prolog
[oneadmin@front-end225 62]$ cat context.sh
# Context variables generated by OpenNebula
DISK_ID='2'
ETH0_GATEWAY='192.168.55.254'
ETH0_IP='192.168.55.109'
ETH0_MAC='02:00:c0:a8:37:6d'
ETH0_MASK='255.255.255.0'
ETH0_NETWORK='192.168.55.0'
NETWORK='YES'
TARGET='hda'
所以配置自動建立網絡的方式就是這樣建立的。
重點2:在建立模板的過程當中儘可能別使用下列配置:
這個配置的主要意思能夠百度查看到,可是這些主要是給物理機使用的,這樣致使了,咱們在vm的環境裏面就不能熱插拔或者電源選項等模式,而後在host機器裏面有時候會致使報錯。其中部分仍是給Windows使用的配置。
已有KVM虛擬機添加。
開機後點主機
添加以後就會出如今虛擬機列表