云計算

云計算

1:什么是云計算替蛉?

云計算是一種按量付費的模式!云計算的底層是通過虛擬化技術來實現(xiàn)的!

2:云計算的服務類型

2.1 IAAS 基礎設施即服務(infrastructure as an service) 虛擬機 ecs openstack

2.2 PAAS 平臺即服務(platform as an service ) php躲查,java docker容器

2.3 SAAS 軟件即服務(soft as an service ) 企業(yè)郵箱服務 cdn服務 rds數(shù)據(jù)庫 開發(fā)+運維

3:為什么要用云計算

小公司:10臺 20w+ idc 5w + 100M 10W它浅, 10臺云主機,前期投入小镣煮,擴展靈活姐霍,風險小

大公司:閑置服務器計算資源,虛擬機典唇,出租(超賣)

64G 服務器 64臺1G 320臺1G 64臺 大公司自己的業(yè)務 264臺 租出去

國企镊折,銀行

公有云:方便不安全;誰都可以使用

私有云:安全不方便介衔;自己搭建恨胚,公司內(nèi)部可以使用

混合云:私有云+公有云

4:云計算的基礎KVM虛擬化

4.1:什么是虛擬化?

虛擬化炎咖,通過模擬計算機的硬件与纽,來實現(xiàn)在同一臺計算機上同時運行多個不同的操作系統(tǒng)的技術。

4.2 :虛擬化軟件的差別

linux虛擬化軟件: qemu 軟件純模擬全虛擬化軟件塘装,讀寫特別慢急迂!AIX,兼容性好蹦肴!

xen(半) :讀寫性能特別好僚碎,需要使用專門修改之后的內(nèi)核,兼容性差阴幌! redhat 5.5 xen kvm

KVM(linux): 全虛擬機勺阐,它有硬件支持cpu,基于內(nèi)核矛双,而且不需要使用專門的內(nèi)核 centos6 kvm 性能較好渊抽,兼容較好

vmware workstations: 圖形界面

virtual box: 圖形界面 Oracle

4.3 安裝kvm虛擬化管理工具

KVM:Kernel-based Virtual Machine,內(nèi)核虛擬化軟件

yum install libvirt virt-install qemu-kvm -y
  • libvirt 作用:虛擬機的管理軟件 libvirt: kvm,xen,qemu,lxc....

  • virt virt-install virt-clone 作用:虛擬機的安裝工具和克隆工具

  • qemu-kvm qemu-img (qcow2,raw)作用:管理虛擬機的虛擬磁盤

環(huán)境要求:

? centos 7.4 7.6 vmware 宿主機 kvm虛擬機

內(nèi)存4G议忽,cpu開啟虛擬化

IP:10.0.0.11
#更新yum源
echo  '192.168.37.20  mirrors.aliyun.com' >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安裝軟件包

yum install libvirt virt-install qemu-kvm -y

4.4:安裝一臺kvm虛擬機

分發(fā)軟件TightVNC或者VNC-Viewer-6.19.325 宿主機

微軟的遠程桌面

vnc:遠程的桌面管理工具 向日葵 微軟的遠程桌面

systemctl start libvirtd.service 
systemctl status libvirtd.service   #自動是開機自啟狀態(tài)

10.0.0.11 宿主機

建議虛擬機內(nèi)存不要低于1024M懒闷,否則安裝系統(tǒng)特別慢!

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#命令解釋
--os-type=linux    系統(tǒng)類型 
--os-variant rhel7 系統(tǒng)版本 
--name centos7     虛擬機的名字  
--memory 1024      虛擬機的內(nèi)存栈幸,默認單位MB
--vcpus 1          虛擬cpu的核數(shù) 
--disk /opt/centos2.raw,format=raw,size=10     指定硬盤的路徑愤估,硬盤格式,大小默認單位G
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso       指定是光盤安裝
--network network=default   使用默認NAT的網(wǎng)絡 
--graphics vnc,listen=0.0.0.0  顯示器vnc那個網(wǎng)段的都能使用  
--noautoconsole     無實際含義速址,可以不加

4.5:kvm虛擬機的virsh日常管理和配置

virsh list              #僅看到正在運行的
virsh list --all        #查看所有的虛擬機(包括查看進程ps -ef(qemu-kvm)和/etc/libvirt/qemu/下的配置文件)
virsh start centos7     #啟動指定虛擬機centos7
virsh shutdown centos7  #僅能關機有系統(tǒng)的虛擬機
virsh destroy centos7   #拔電源關機
virsh reboot centos7    #重啟玩焰,有系統(tǒng)的
virsh nvcdisplay centos7    #查看該虛擬機的vnc端口,可以用vnc通過端口連接

virsh undefine centos7_1    #刪除芍锚,先destroy昔园,如果裝一半磁盤也要清理蔓榄,undefine只刪虛擬機的配置文件,磁盤文件手動清理
virsh dumpxml centos7       #備份配置文件

virsh define vm_centos7.xml #導入配置文件(恢復前提磁盤文件存在)

domrename           #重命名
virsh domrename centos7 web01

virsh edit web01        #編輯虛擬機的配置文件默刚,有語法檢測
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
    ...
    <source file='/opt/web01.raw'/>
    
suspend         #掛起甥郑,會暫停時間
virsh suspend web01
resume          #恢復
virsh resume web01

autostart       #開機自啟,配置后會創(chuàng)建一個軟鏈接羡棵,xx 
virsh autostart web01
[root@oldboy opt]# ll /etc/libvirt/qemu/autostart/
lrwxrwxrwx 1 root root 27 Nov 27 15:09 web01.xml -> /etc/libvirt/qemu/web01.xml

autostart --disalbe     #取消開機自啟,相當于刪除軟鏈接
創(chuàng)建軟鏈接相當于開機自啟
ln -s /etc/libvirt/qemu/web01.xml /etc/libvirt/qemu/autostart/

libvirtd

console 控制臺 登錄

centos7的kvm虛擬機:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot

console
模擬生產(chǎn)故障:關機 虛擬機消失,關一臺少一臺
原因:虛擬機在運行時被 undefine 刪除配置文件
方法:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
將 --cdrom xxx.iso 改為  --boot hd 即可
意思是將從鏡像文件讀取改為從磁盤讀取

4.6:kvm虛擬機虛擬磁盤格式轉(zhuǎn)換和快照管理

raw格式:裸格式嗅钻,占用空間較大皂冰,不支持快照,不方便傳輸养篓,讀寫性能好  總50G 占用50G,傳輸50G 
qcow2(copy on write):占用空間小秃流,支持快照,性能比raw差柳弄,方便傳輸    總50G 占用2G,傳輸2G

qemu 寫時的復制 qcow qcow2

#安裝raw格式的磁盤
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#安裝qcow2格式的磁盤
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

4.6.1磁盤工具的常用命令

qemu -img info舶胀,create,resize碧注,convert

qemu-img info web01.qcow2   #查看磁盤信息
qemu-img create -f raw test.raw 2G  #創(chuàng)建一塊大小為2G的raw格式的磁盤
qemu-img resize test.qcow2 +20G     #給硬盤增加20G的大小嚣伐,不建議減小硬盤
qemu-img convert -f raw -O qcow2 wang.raw wang.qcow2            #磁盤格式轉(zhuǎn)換
rm -fr #刪除
#virsh edit 修改虛擬機的配置文件
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/centos2.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
virsh destroy web01 
virsh start web01

4.6.2快照管理

raw不支持做快照,qcow2支持快照萍丐,并且快照就保存在qcow2的磁盤文件中

virsh snapshot-create web01

[root@kvm01 opt]# virsh snapshot-create web01 
Domain snapshot 1574852395 created

[root@kvm01 opt]# virsh snapshot-list web01 

[root@kvm01 opt]# virsh snapshot-delete web01 --snapshotname 1574852395 
Domain snapshot 1574852395 deleted

創(chuàng)建快照時創(chuàng)建別名
[root@kvm01 opt]# virsh snapshot-create-as web01 --name diyici
Domain snapshot diyici created

還原快照
[root@kvm01 opt]# virsh snapshot-revert web01 --snapshotname diyici 

4.7: kvm虛擬機克隆

4.7.1:完整克隆

自動擋:

[root@kvm01 opt]# virt-clone -o web01 -n web02 --auto-clone

手動擋:

[root@kvm01 opt]# cp web02.qcow2 web03.qcow2 
[root@kvm01 opt]# virsh dumpxml web02 >web03.xml
[root@kvm01 opt]# vim web03.xml 
#修改虛擬機的名字
<name>web03</name>
#刪除虛擬機uuid,每個虛擬機的唯一標識轩端,刪除之后,再導入讓自動生成
<uuid>5107d8a8-f606-401e-9289-b82ea3bdd72b</uuid>
#刪除mac地址逝变,每個虛擬機的唯一標識基茵,刪除之后,再導入讓自動生成
<mac address='52:54:00:34:db:b4'/>
#修改磁盤路徑
<source file='/opt/web03.qcow2'/>

[root@kvm01 opt]# virsh define web03.xml 

4.7.2:鏈接克隆

手動:

創(chuàng)建引用磁盤壳影,raw不支持備份文件
[root@kvm01 opt]# qemu-img create -f qcow2 -b web01.qcow2 web06.qcow2
Formatting 'web06.qcow2', fmt=qcow2 size=10737418240 backing_file='web01.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 

復制配置文件
[root@kvm01 opt]# cp web03.xml web06.xml 

修改配置
[root@kvm01 opt]# vim web06.xml 
#修改主機名稱
#刪除uuid
#刪除mac地址
#修改disk地址

導入配置文件
[root@kvm01 opt]# virsh define web06.xml 

連接克隆的磁盤拱层,他不同于其他磁盤,因為連接克隆是克隆虛擬機的當前狀態(tài)宴咧,所以磁盤的容量只有幾K

[root@kvm01 opt]# qemu-img info web06.qcow2 
image: web06.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)       #實際大小
disk size: 448K                             #現(xiàn)在狀態(tài)下的大小
cluster_size: 65536
backing file: web01.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false

全自動鏈接克隆腳本:

需求:

  • 隨便找一個作為模板機克隆

  • 查看模板機是否存在

  • 所有虛擬機磁盤文件在一個目錄下根灯,和上一個虛擬機放在一起

[root@kvm01 ~]# cat linkclone.sh
#!/bin/bash
read -p "請輸入模板機路徑:" old
read -p "請輸入克隆機名稱:" new

#創(chuàng)建引用磁盤
if [ -f /etc/libvirt/qemu/${old}.xml ];then
qemu-img create -f qcow2 -b /opt/${old}.qcow2 /opt/${new}.qcow2 1>/dev/null

#復制配置文件
cp /opt/${old}.xml /opt/${new}.xml
sed -in "/<name/s/${old}/${new}/g" /opt/${new}.xml

#修改配置
#sed -in '/<uuid/d' /opt/${new}.xml
#sed -in "/mac/d" /opt/${new}.xml
sed -in '/<uuid/d' /opt/${new}.xml
sed -in '/<mac address/d' /opt/${new}.xml
sed "/opt\/${old}.qcow2/s/${old}/${new}/g" /opt/${new}.xml -i

#導入
virsh define /opt/${new}.xml
else
    echo "模板機不存在"
fi

4.8:kvm虛擬機的橋接網(wǎng)絡

默認的虛擬機網(wǎng)絡是NAT模式,網(wǎng)段192.168.122.0/24

4.8.1:創(chuàng)建橋接網(wǎng)卡

創(chuàng)建橋接網(wǎng)卡命令 
virsh iface-bridge eth0 br0 
取消橋接網(wǎng)卡命令 
virsh iface-unbridge br0

4.8.2 新虛擬機使用橋接模式

默認NAT模式

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

橋接模式

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name we03 --memory 1024 --vcpus 1 --disk /opt/we03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

4.8.3 將已有虛擬機網(wǎng)絡修改為橋接模式

a:關機狀態(tài)下修改虛擬機配置文件:

例如:virsh edit centos7

<interface type='bridge'>
<source bridge='br0'/>

b:啟動虛擬機掺栅,測試虛擬機網(wǎng)絡

如果上層沒有開啟dhcp,需要手動配置ip地址,IPADDR,NATMASK.GATEWAY,DNS1=180.76.76.76

echo 'TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.102"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.254"
DNS1="223.5.5.5"'  >/etc/sysconfig/network-scripts/ifcfg-eth0

4.9:熱添加技術

熱添加硬盤箱吕、網(wǎng)卡、內(nèi)存柿冲、cpu

4.9.1 kvm熱添加硬盤

臨時生效 vdb指定的要增加的盤符

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2

永久生效

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config
宿主機
[root@kvm01 opt]# qemu-img create -f qcow2 web03_add01.qcow2 10G
[root@kvm01 opt]# virsh attach-disk web03 /opt/web03_add01.qcow2 vdb --subdriver qcow2 --config

虛擬機
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkfs.xfs /dev/vdb 
[root@localhost ~]# mount /dev/vdb /mnt

臨時剝離硬盤

virsh detach-disk web01 vdb

永久剝離硬盤

virsh detach-disk web01 vdb --config

磁盤擴容

磁盤里面分為inode和block茬高,分別存放的是數(shù)據(jù)屬性和存儲實際數(shù)據(jù)

虛擬機,卸載分區(qū)
[root@localhost ~]# umount /mnt/

宿主機
[root@kvm01 opt]# virsh detach-disk web03 vdb
[root@kvm01 opt]# qemu-img resize /opt/web03_add01.qcow2 +10G
[root@kvm01 opt]# virsh attach-disk web03 /opt/web03_add01.qcow2 vdb --subdriver qcow2

虛擬機
 mount /dev/vdb /mnt
#更新擴容盤的信息
[root@localhost ~]# xfs_growfs /dev/vdb 

擴容: 在虛擬機里把擴容盤的掛載目錄假抄,卸載掉 在宿主機上剝離硬盤virsh detach-disk web01 vdb 在宿主機上調(diào)整容量qemu-img resize 在宿主機上再次附加硬盤virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 在虛擬機里再次掛載擴容盤 在虛擬機里用xfs_growfs更新擴容盤超級塊信息

4.9.2 kvm虛擬機在線熱添加網(wǎng)卡

#臨時添加怎栽,重啟后無
virsh attach-interface web03 --type bridge --source br0 --model virtio
#virtio:不加這個參數(shù)添加的網(wǎng)卡為enss丽猬,加上就是eth

#加上--config 永久添加
virsh attach-interface web03 --type bridge --source br0 --model virtio --config 

#摘除,ifconfig看網(wǎng)卡的mac地址
virsh detach-interface web03 --type bridge --mac 52:54:00:16:3e:6c

4.9.3 kvm虛擬機在線熱添加內(nèi)存

#臨時熱修改內(nèi)存 
virsh setmem web03 512M

#永久熱修改內(nèi)存
virsh setmem web03 1024M --config

#調(diào)整虛擬機內(nèi)存最大值
virsh setmaxmem web04 4G

#手動調(diào)整
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>

4.9.4 kvm虛擬機在線熱添加cpu

#安裝虛擬機的時候配置
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 

#熱添加cpu核數(shù) 
virsh setvcpus web04 2 

#永久添加cpu核數(shù) 
virsh setvcpus web04 2 --config

#添加cpu最大核心
virsh setvcpus web03 --maximum 4 --config 

#或者手動修改配置文件
 <vcpu placement='static' current='1'>4</vcpu>
 
#虛擬機檢驗
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1

4.10:virt-manager和kvm虛擬機熱遷移(共享的網(wǎng)絡文件系統(tǒng))

遷移的假如是鏈接克隆的虛擬機,最好把源主機也遷移過去熏瞄。已創(chuàng)建快照的虛擬機不允許導出橱脸、克隆、遷移操作

冷遷移kvm虛擬機:配置文件,磁盤文件

冷遷移斗锭,就是將虛擬機先關機再進行遷移忍级。其原理可以使用scp實現(xiàn)

準備環(huán)境:

###兩邊宿主機環(huán)境必須保持一致
yum install libvirt virt-install qemu-kvm -y
virsh iface-bridge eth0 br0
systemctl restart libvirtd

操作:

1.關閉需克隆的虛擬機
2.virsh dumpxml web03 >/opt/web03.xml      #備份配置文件
3.scp -rp /opt/web03.qcow2 /opt/web03.xml 10.0.0.99:/opt

kvm02 操作
virsh define /opt/web03.xml  #導入配置文件
virsh start web03
virsh console web03  #檢查是否能進入系統(tǒng)

熱遷移kvm虛擬機:配置文件,nfs共享

熱遷移,就是不關閉虛擬機邮丰,虛擬機在遷移的過程中仍然保持著原來的狀態(tài)行您。

1):kvm虛擬機熱遷移 1:兩邊的環(huán)境(橋接網(wǎng)卡)

主機名 ip 內(nèi)存 網(wǎng)絡 軟件需求 虛擬化
kvm01 10.0.0.11 2G 創(chuàng)建br0橋接網(wǎng)卡 kvm和nfs 開啟虛擬化
kvm02 10.0.0.12 2G 創(chuàng)建br0橋接網(wǎng)卡 kvm和nfs 開啟虛擬化
nfs01 10.0.0.31 1G nfs

2:操作

#nfs配置
[root@nfs ~]# cat /etc/exports
/vm 10.0.0.0/24(rw,async,no_all_squash,no_root_squash)

[root@nfs ~]# mkdir /vm
[root@nfs ~]# systemctl restart nfs

###兩邊宿主機環(huán)境一致
yum install libvirt virt-install qemu-kvm -y
virsh iface-bridge eth0 br0
systemctl restart libvirtd
mount -t nfs 10.0.0.31:/vm /opt

echo "10.0.0.100 kvm01
10.0.0.99 kvm02" >>/etc/hosts

###kvm01操作
#遷移并保留源虛擬機
virsh migrate --live --verbose web02 qemu+ssh://10.0.0.99/system --unsafe

#永久遷移并刪除源虛擬機
virsh migrate --live --verbose web02 qemu+ssh://10.0.0.99/system --unsafe --persistent --undefinesource

#命令解釋
live:在線遷移,熱遷移的意思
verbose:遷移的時候顯示進度
unsafe:關閉保護機制剪廉,虛擬機在熱遷移的時候會有一些數(shù)據(jù)還沒有存放在磁盤娃循,遷移過去會提示安全問題
persistent:永久遷移
undefinesource:將遷移過去的虛擬機順便刪除了

5: ESXI虛擬化系統(tǒng)

5.1 安裝ESXI

5.1.1創(chuàng)建虛擬機

一路回車,直到

按F11

5.2啟動ESXI

5.3 安裝ESXI客戶端

一路下一步就行

安裝完成

5.4使用客戶端連接EXSI服務端

連接成功界面

5.5了解ESXI的常用配置

開啟ssh功能

5.6安裝一臺ESXI虛擬機

5.7 將kvm虛擬機遷移到esxi上

kvm宿主機:

qemu-img convert -f qcow2 oldimage.qcow2 -O vmdk newimage.vmdk

#可能不需要

vmkfstools -i oldimage.vmdk newimage.vmdk -d thin

5.8 將ESXI虛擬機遷移到kvm上

將虛擬機導出ova文件

virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2

kvm宿主機 2000臺 查看每一個宿主機有多少臺虛擬機? 查看每一個宿主機還剩多少資源? 查看每一臺宿主機,每一個虛擬機的ip地址?

excel 資產(chǎn)管理 cmdb

kvm管理平臺,數(shù)據(jù)庫工具

信息:宿主機,總配置,剩余的總配置 虛擬機的信息,配置信息,ip地址,操作系統(tǒng)

帶計費功能的kvm管理平臺,openstack ceilometer計費 ecs IAAS層 自動化管理kvm宿主機,云主機定制化操作

服務器斗蒋, 20核心 1T內(nèi)存 96T

資源浪費捌斧,linux環(huán)境特別亂,泉沾,kvm虛擬機

6.使用腳本自動化部署openstack M版

部署openstack 克隆一臺openstack模板機:

all-in-one環(huán)境

4G內(nèi)存,開啟虛擬化,掛載centos7.6的光盤

虛擬機開機之后捞蚂,修改ip地址為10.0.0.11

上傳腳本openstack-mitaka-autoinstall.sh到/root目錄 上傳鏡像:cirros-0.3.4-x86_64-disk.img到/root目錄 上傳配置文件:local_settings到/root目錄 上傳openstack_rpm.tar.gz到/root下, tar xf openstack_rpm.tar.gz -C /opt/

sh /root/openstack-mitaka-autoinstall.sh 大概10-30分鐘左右 訪問http://10.0.0.11/dashboard 域:default 用戶名:admin 密碼:ADMIN_PASS

注意: 在windows系統(tǒng)上修改host解析(10.0.0.11 controller)

添加node節(jié)點: 修改ip地址 hostnamectl set-hostname compute1 重新登錄讓新主機名生效 上傳openstack_rpm.tar.gz到/root下, tar xf openstack_rpm.tar.gz -C /opt/ 上傳腳本 openstack_node_autoinstall.sh

修改腳本中的Hostname主機名

sh openstack_node_autoinstall.sh

openstack controller主控制節(jié)點,node節(jié)點, kvm宿主機
node節(jié)點, kvm宿主機
node節(jié)點, kvm宿主機
node節(jié)點, kvm宿主機

7:一步一步部署一個openstack集群

7.1 openstack基礎架構

7.1:準備環(huán)境

主機名稱 角色 ip 內(nèi)存
controller 控制節(jié)點 10.0.0.11 3G或4G
compute1 計算節(jié)點 10.0.0.31 1G

注意:主機之間相互host解析

7.1.1 時間同步

#服務端,controller節(jié)點
vim  /etc/chrony.conf
allow  10.0.0.0/24
systemctl  restart   chronyd

#客戶端跷究,compute1節(jié)點
vim  /etc/chrony.conf
server 10.0.0.11 iburst
systemctl  restart   chronyd

驗證:同時執(zhí)行date

7.1.2:配置yum源洞难,并安裝客戶端

#所有節(jié)點
#配置過程:
cd /opt/
rz -E
tar xf openstack_ocata_rpm.tar.gz 
cd /etc/yum.repos.d/
mv  *.repo   /tmp
mv /tmp/CentOS-Base.repo .
vi   openstack.repo
[openstack]
name=openstack
baseurl=file:///opt/repo
enable=1
gpgcheck=0

#驗證:
yum clean all
yum install python-openstackclient -y

7.1.3:安裝數(shù)據(jù)庫

#控制節(jié)點
yum install mariadb mariadb-server python2-PyMySQL -y
##openstack所有組件使用python開發(fā),openstack在連接數(shù)據(jù)庫需要用到python2-PyMySQL模塊
#修改mariadb配置文件
vi  /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 10.0.0.11

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
#啟動數(shù)據(jù)庫
systemctl start mariadb
systemctl enable mariadb
#數(shù)據(jù)庫安全初始化
mysql_secure_installation
回車
n
一路y

7.1.3 安裝消息隊列rabbitmq

#控制節(jié)點
#安裝消息隊列
yum install rabbitmq-server
#啟動rabbitmq
systemctl start rabbitmq-server.service 
systemctl enable rabbitmq-server.service
#在rabbitmq創(chuàng)建用戶
rabbitmqctl add_user openstack 123456
#為剛創(chuàng)建的openstack授權
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

7.1.4 安裝memcache緩存

#控制節(jié)點
#安裝memcache
yum install memcached python-memcached  -y
##python-memcached是python連接memcache的模塊插件
#配置
vim /etc/sysconfig/memcached
##修改最后一行
OPTIONS="-l 0.0.0.0"
#啟動服務
systemctl start memcached
systemctl enable memcached

7.2 安裝keystone服務

#創(chuàng)庫授權
##登錄mysql
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'  IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'  IDENTIFIED BY '123456';
#安裝keystone服務
yum install openstack-keystone httpd mod_wsgi -y
##httpd配合mod_wsgi插件調(diào)用python項目
#修改keystone配置文件
cp /etc/keystone/keystone.conf{,.bak}
grep -Ev '^$|#' /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf
#完整配置文件如下:
[root@controller ~]# vi /etc/keystone/keystone.conf
[DEFAULT]
[assignment]
[auth]
[cache]
[catalog]
[cors]
[cors.subdomain]
[credential]
[database]
connection = mysql+pymysql://keystone:123456@controller/keystone
[domain_config]
[endpoint_filter]
[endpoint_policy]
[eventlet_server]
[federation]
[fernet_tokens]
[healthcheck]
[identity]
[identity_mapping]
[kvs]
[ldap]
[matchmaker_redis]
[memcache]
[oauth1]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[paste_deploy]
[policy]
[profiler]
[resource]
[revoke]
[role]
[saml]
[security_compliance]
[shadow_users]
[signing]
[token]
provider = fernet
[tokenless_auth]
[trust]
#校驗md5
md5sum /etc/keystone/keystone.conf
85d8b59cce0e4bd307be15ffa4c0cbd6  /etc/keystone/keystone.conf
#同步數(shù)據(jù)庫
su -s /bin/sh -c "keystone-manage db_sync" keystone
##切到普通用戶下揭朝,使用指定的shell執(zhí)行某一條命令
##檢查數(shù)據(jù)是否同步成功
mysql keystone -e 'show tables;'|wc -l
#初始化令牌憑據(jù)
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
#初始化keystone身份認證服務
keystone-manage bootstrap --bootstrap-password 123456 \
  --bootstrap-admin-url http://controller:35357/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne
#配置httpd
#小優(yōu)化
echo "ServerName controller" >>/etc/httpd/conf/httpd.conf
#在httpd下添加keystone站點配置文件
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
#啟動httpd等效于keystone
systemctl start httpd
systemctl enable httpd
#聲明環(huán)境變量
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
#驗證keystone是否正常
openstack user list
#創(chuàng)建service的項目
openstack project create --domain default \
  --description "Service Project" service
#修改/root/.bashrc文件
vi  /root/.bashrc
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

=====================================看html文件=========================================

7.3 安裝glance服務

功能:管理鏡像模板機

xxxxxxxxxx

119

1

1:創(chuàng)庫授權

2

CREATE DATABASE glance;

3

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \

4

  IDENTIFIED BY '123456';

5

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \

6

  IDENTIFIED BY '123456';

7


8

2:keystone上創(chuàng)建用戶队贱,關聯(lián)角色

9

openstack user create --domain default --password 123456 glance

10

openstack role add --project service --user glance admin

11


12

3:keystone上創(chuàng)建服務,注冊api地址

13

openstack service create --name glance \

14

  --description "OpenStack Image" image

15

openstack endpoint create --region RegionOne \

16

  image public http://controller:9292

17

openstack endpoint create --region RegionOne \

18

  image internal http://controller:9292

19

openstack endpoint create --region RegionOne \

20

  image admin http://controller:9292

21


22

4:安裝服務軟件包

23

yum install openstack-glance -y

24


25

5:修改配置文件(連接數(shù)據(jù)庫潭袱,keystone授權)

26

##glance-api 上傳下載刪除

27

##glance-registry  修改鏡像的屬性  x86  根分區(qū)大小

28

#修改glance-api配置文件

29

cp /etc/glance/glance-api.conf{,.bak}

30

grep -Ev '^$|#' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf

31

vim /etc/glance/glance-api.conf

32

[DEFAULT]

33

[cors]

34

[cors.subdomain]

35

[database]

36

connection = mysql+pymysql://glance:123456@controller/glance

37

[glance_store]

38

stores = file,http

39

default_store = file

40

filesystem_store_datadir = /var/lib/glance/images/

41

[image_format]

42

[keystone_authtoken]

43

auth_uri = http://controller:5000

44

auth_url = http://controller:35357

45

memcached_servers = controller:11211

46

auth_type = password

47

project_domain_name = default

48

user_domain_name = default

49

project_name = service

50

username = glance

51

password = 123456

52

[matchmaker_redis]

53

[oslo_concurrency]

54

[oslo_messaging_amqp]

55

[oslo_messaging_kafka]

56

[oslo_messaging_notifications]

57

[oslo_messaging_rabbit]

58

[oslo_messaging_zmq]

59

[oslo_middleware]

60

[oslo_policy]

61

[paste_deploy]

62

flavor = keystone

63

[profiler]

64

[store_type_location_strategy]

65

[task]

66

[taskflow_executor]

67

##校驗

68

md5sum /etc/glance/glance-api.conf

69

a42551f0c7e91e80e0702ff3cd3fc955  /etc/glance/glance-api.conf

70


71

##修改glance-registry.conf配置文件

72

cp /etc/glance/glance-registry.conf{,.bak} 

73

grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak >/etc/glance/glance-registry.conf

74

vim /etc/glance/glance-registry.conf

75

[DEFAULT]

76

[database]

77

connection = mysql+pymysql://glance:123456@controller/glance

78

[keystone_authtoken]

79

auth_uri = http://controller:5000

80

auth_url = http://controller:35357

81

memcached_servers = controller:11211

82

auth_type = password

83

project_domain_name = default

84

user_domain_name = default

85

project_name = service

86

username = glance

87

password = 123456

88

[matchmaker_redis]

89

[oslo_messaging_amqp]

90

[oslo_messaging_kafka]

91

[oslo_messaging_notifications]

92

[oslo_messaging_rabbit]

93

[oslo_messaging_zmq]

94

[oslo_policy]

95

[paste_deploy]

96

flavor = keystone

97

[profiler]

98

##校驗

99

md5sum /etc/glance/glance-registry.conf

100

5b28716e936cc7a0ab2a841c914cd080  /etc/glance/glance-registry.conf

101


102

6:同步數(shù)據(jù)庫(創(chuàng)表)

103

su -s /bin/sh -c "glance-manage db_sync" glance

104

mysql glance -e 'show tables;'|wc -l

105

7:啟動服務

106

systemctl enable openstack-glance-api.service \

107

  openstack-glance-registry.service

108

systemctl start openstack-glance-api.service \

109

  openstack-glance-registry.service

110

#驗證端口

111

netstat -lntup|grep -E '9191|9292'

112

8:命令行上傳鏡像

113

wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img

114

openstack image create "cirros"   --file cirros-0.3.5-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public

115

##驗證

116

ll /var/lib/glance/images/

117

#或

118

openstack image list

119


7.4 安裝nova服務

7.4.1 控制節(jié)點安裝nova服務

1:創(chuàng)庫授權

xxxxxxxxxx

15

1

 CREATE DATABASE nova_api;

2

 CREATE DATABASE nova;

3

 CREATE DATABASE nova_cell0;

4

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \

5

  IDENTIFIED BY '123456';

6

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \

7

  IDENTIFIED BY '123456';

8

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \

9

  IDENTIFIED BY '123456';

10

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \

11

  IDENTIFIED BY '123456';

12

GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \

13

  IDENTIFIED BY '123456';

14

GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \

15

  IDENTIFIED BY '123456';

2:keystone上創(chuàng)建用戶柱嫌,關聯(lián)角色

xxxxxxxxxx

5

1

openstack user create --domain default --password 123456 nova

2

openstack role add --project service --user nova admin

3

#placement 追蹤云主機的資源使用具體情況

4

openstack user create --domain default --password 123456 placement

5

openstack role add --project service --user placement admin

3:keystone上創(chuàng)建服務,http訪問地址(api地址)

xxxxxxxxxx

8

1

openstack service create --name nova --description "OpenStack Compute" compute

2

openstack endpoint create --region RegionOne   compute public http://controller:8774/v2.1

3

openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

4

openstack endpoint create --region RegionOne  compute admin http://controller:8774/v2.1

5

openstack service create --name placement --description "Placement API" placement

6

openstack endpoint create --region RegionOne placement public http://controller:8778

7

openstack endpoint create --region RegionOne placement internal http://controller:8778

8

openstack endpoint create --region RegionOne placement admin http://controller:8778

4:安裝服務軟件包

xxxxxxxxxx

3

1

yum install openstack-nova-api openstack-nova-conductor \

2

  openstack-nova-console openstack-nova-novncproxy \

3

  openstack-nova-scheduler openstack-nova-placement-api -y

5:修改配置文件(連接數(shù)據(jù)庫屯换,keystone授權)

xxxxxxxxxx

110

1

#修改nova配置文件

2

vim /etc/nova/nova.conf

3

[DEFAULT]

4

##啟動nova服務api和metadata的api

5

enabled_apis = osapi_compute,metadata

6

##連接消息隊列rabbitmq

7

transport_url = rabbit://openstack:123456@controller

8

my_ip = 10.0.0.11

9

#啟動neutron網(wǎng)絡服務编丘,禁用nova內(nèi)置防火墻

10

use_neutron = True

11

firewall_driver = nova.virt.firewall.NoopFirewallDriver

12

[api]

13

auth_strategy = keystone

14

[api_database]

15

connection = mysql+pymysql://nova:123456@controller/nova_api

16

[barbican]

17

[cache]

18

[cells]

19

[cinder]

20

[cloudpipe]

21

[conductor]

22

[console]

23

[consoleauth]

24

[cors]

25

[cors.subdomain]

26

[crypto]

27

[database]

28

connection = mysql+pymysql://nova:123456@controller/nova

29

[ephemeral_storage_encryption]

30

[filter_scheduler]

31

[glance]

32

api_servers = http://controller:9292

33

[guestfs]

34

[healthcheck]

35

[hyperv]

36

[image_file_url]

37

[ironic]

38

[key_manager]

39

[keystone_authtoken]

40

auth_uri = http://controller:5000

41

auth_url = http://controller:35357

42

memcached_servers = controller:11211

43

auth_type = password

44

project_domain_name = default

45

user_domain_name = default

46

project_name = service

47

username = nova

48

password = 123456

49

[libvirt]

50

[matchmaker_redis]

51

[metrics]

52

[mks]

53

[neutron]

54

[notifications]

55

[osapi_v21]

56

[oslo_concurrency]

57

lock_path = /var/lib/nova/tmp

58

[oslo_messaging_amqp]

59

[oslo_messaging_kafka]

60

[oslo_messaging_notifications]

61

[oslo_messaging_rabbit]

62

[oslo_messaging_zmq]

63

[oslo_middleware]

64

[oslo_policy]

65

[pci]

66

#追蹤虛擬機使用資源情況

67

[placement]

68

os_region_name = RegionOne

69

project_domain_name = Default

70

project_name = service

71

auth_type = password

72

user_domain_name = Default

73

auth_url = http://controller:35357/v3

74

username = placement

75

password = 123456

76

[quota]

77

[rdp]

78

[remote_debug]

79

[scheduler]

80

[serial_console]

81

[service_user]

82

[spice]

83

[ssl]

84

[trusted_computing]

85

[upgrade_levels]

86

[vendordata_dynamic_auth]

87

[vmware]

88

#vnc的連接信息

89

[vnc]

90

enabled = true

91

vncserver_listen = $my_ip

92

vncserver_proxyclient_address = $my_ip

93

[workarounds]

94

[wsgi]

95

[xenserver]

96

[xvp]

97

#修改httpd配置文件

98

vi  /etc/httpd/conf.d/00-nova-placement-api.conf

99

在16行</VirtualHost>這一行上面增加以下內(nèi)容

100

<Directory /usr/bin>

101

   <IfVersion >= 2.4>

102

      Require all granted

103

   </IfVersion>

104

   <IfVersion < 2.4>

105

      Order allow,deny

106

      Allow from all

107

   </IfVersion>

108

</Directory>

109

#重啟httpd

110

systemctl restart httpd

6:同步數(shù)據(jù)庫(創(chuàng)表)

xxxxxxxxxx

6

1

su -s /bin/sh -c "nova-manage api_db sync" nova

2

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

3

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

4

su -s /bin/sh -c "nova-manage db sync" nova

5

#檢查

6

nova-manage cell_v2 list_cells

7:啟動服務

xxxxxxxxxx

8

1

systemctl enable openstack-nova-api.service \

2

  openstack-nova-consoleauth.service openstack-nova-scheduler.service \

3

  openstack-nova-conductor.service openstack-nova-novncproxy.service

4

systemctl start openstack-nova-api.service \

5

  openstack-nova-consoleauth.service openstack-nova-scheduler.service \

6

  openstack-nova-conductor.service openstack-nova-novncproxy.service

7

#檢查

8

openstack compute service list

7.4.2計算節(jié)點安裝nova服務

1:安裝

xxxxxxxxxx

1

1

yum install openstack-nova-compute -y

2:配置

xxxxxxxxxx

90

1

#修改配置文件/etc/nova/nova.conf

2

vim /etc/nova/nova.conf

3

[DEFAULT]

4

enabled_apis = osapi_compute,metadata

5

transport_url = rabbit://openstack:123456@controller

6

my_ip = 10.0.0.31

7

use_neutron = True

8

firewall_driver = nova.virt.firewall.NoopFirewallDriver

9

[api]

10

auth_strategy = keystone

11

[api_database]

12

[barbican]

13

[cache]

14

[cells]

15

[cinder]

16

[cloudpipe]

17

[conductor]

18

[console]

19

[consoleauth]

20

[cors]

21

[cors.subdomain]

22

[crypto]

23

[database]

24

[ephemeral_storage_encryption]

25

[filter_scheduler]

26

[glance]

27

api_servers = http://controller:9292

28

[guestfs]

29

[healthcheck]

30

[hyperv]

31

[image_file_url]

32

[ironic]

33

[key_manager]

34

[keystone_authtoken]

35

auth_uri = http://controller:5000

36

auth_url = http://controller:35357

37

memcached_servers = controller:11211

38

auth_type = password

39

project_domain_name = default

40

user_domain_name = default

41

project_name = service

42

username = nova

43

password = 123456

44

[libvirt]

45

[matchmaker_redis]

46

[metrics]

47

[mks]

48

[neutron]

49

[notifications]

50

[osapi_v21]

51

[oslo_concurrency]

52

lock_path = /var/lib/nova/tmp

53

[oslo_messaging_amqp]

54

[oslo_messaging_kafka]

55

[oslo_messaging_notifications]

56

[oslo_messaging_rabbit]

57

[oslo_messaging_zmq]

58

[oslo_middleware]

59

[oslo_policy]

60

[pci]

61

[placement]

62

os_region_name = RegionOne

63

project_domain_name = Default

64

project_name = service

65

auth_type = password

66

user_domain_name = Default

67

auth_url = http://controller:35357/v3

68

username = placement

69

password = 123456

70

[quota]

71

[rdp]

72

[remote_debug]

73

[scheduler]

74

[serial_console]

75

[service_user]

76

[spice]

77

[ssl]

78

[trusted_computing]

79

[upgrade_levels]

80

[vendordata_dynamic_auth]

81

[vmware]

82

[vnc]

83

enabled = True

84

vncserver_listen = 0.0.0.0

85

vncserver_proxyclient_address = $my_ip

86

novncproxy_base_url = http://controller:6080/vnc_auto.html

87

[workarounds]

88

[wsgi]

89

[xenserver]

90

[xvp]

3:啟動

systemctl start libvirtd openstack-nova-compute.service systemctl enable libvirtd openstack-nova-compute.service

4:控制節(jié)點上驗證

openstack compute service list

5:在控制節(jié)點上

發(fā)現(xiàn)計算節(jié)點:

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

7.5 安裝neutron服務

7.5.1 在控制節(jié)點上安裝neutron服務

1:創(chuàng)庫授權

xxxxxxxxxx

5

1

CREATE DATABASE neutron;

2

GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \

3

  IDENTIFIED BY 'NEUTRON_DBPASS';

4

GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \

5

  IDENTIFIED BY 'NEUTRON_DBPASS';

2:keystone上創(chuàng)建用戶,關聯(lián)角色

xxxxxxxxxx

2

1

openstack user create --domain default --password NEUTRON_PASS neutron

2

openstack role add --project service --user neutron admin

3:keystone上創(chuàng)建服務彤悔,http訪問地址(api地址)

xxxxxxxxxx

8

1

 openstack service create --name neutron \

2

  --description "OpenStack Networking" network

3

 openstack endpoint create --region RegionOne \

4

  network public http://controller:9696

5

openstack endpoint create --region RegionOne \

6

  network internal http://controller:9696

7

openstack endpoint create --region RegionOne \

8

  network admin http://controller:9696

4:安裝服務軟件包

#選擇網(wǎng)絡選項1

xxxxxxxxxx

2

1

yum install openstack-neutron openstack-neutron-ml2 \

2

  openstack-neutron-linuxbridge ebtables -y

5:修改配置文件(連接數(shù)據(jù)庫嘉抓,keystone授權)

xxxxxxxxxx

105

1

#修改neutron.conf

2

vim /etc/neutron/neutron.conf

3

[DEFAULT]

4

core_plugin = ml2

5

service_plugins =

6

transport_url = rabbit://openstack:123456@controller

7

auth_strategy = keystone

8

notify_nova_on_port_status_changes = true

9

notify_nova_on_port_data_changes = true

10

[agent]

11

[cors]

12

[cors.subdomain]

13

[database]

14

connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

15

[keystone_authtoken]

16

auth_uri = http://controller:5000

17

auth_url = http://controller:35357

18

memcached_servers = controller:11211

19

auth_type = password

20

project_domain_name = default

21

user_domain_name = default

22

project_name = service

23

username = neutron

24

password = NEUTRON_PASS

25

[matchmaker_redis]

26

[nova]

27

auth_url = http://controller:35357

28

auth_type = password

29

project_domain_name = default

30

user_domain_name = default

31

region_name = RegionOne

32

project_name = service

33

username = nova

34

password = 123456

35

[oslo_concurrency]

36

lock_path = /var/lib/neutron/tmp

37

[oslo_messaging_amqp]

38

[oslo_messaging_kafka]

39

[oslo_messaging_notifications]

40

[oslo_messaging_rabbit]

41

[oslo_messaging_zmq]

42

[oslo_middleware]

43

[oslo_policy]

44

[qos]

45

[quotas]

46

[ssl]

47

##修改ml2_conf.ini

48

vim /etc/neutron/plugins/ml2/ml2_conf.ini

49

[DEFAULT]

50

[ml2]

51

type_drivers = flat,vlan

52

tenant_network_types =

53

mechanism_drivers = linuxbridge

54

extension_drivers = port_security

55

[ml2_type_flat]

56

flat_networks = provider

57

[ml2_type_geneve]

58

[ml2_type_gre]

59

[ml2_type_vlan]

60

[ml2_type_vxlan]

61

[securitygroup]

62

enable_ipset = true

63

##編輯linuxbridge_agent.ini

64

vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini

65

[DEFAULT]

66

[agent]

67

[linux_bridge]

68

physical_interface_mappings = provider:eth0

69

[securitygroup]

70

enable_security_group = true

71

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

72

[vxlan]

73

enable_vxlan = false

74

##編輯dhcp_agent.ini

75

vim /etc/neutron/dhcp_agent.ini

76

[DEFAULT]

77

interface_driver = linuxbridge

78

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

79

enable_isolated_metadata = true

80

[agent]

81

[ovs]

82

##編輯

83

vim /etc/neutron/metadata_agent.ini

84

[DEFAULT]

85

nova_metadata_ip = controller

86

metadata_proxy_shared_secret = METADATA_SECRET

87

[agent]

88

[cache]

89

####編輯控制節(jié)點。nova配置文件

90

vim  /etc/nova/nova.conf

91

[neutron]

92

url = http://controller:9696

93

auth_url = http://controller:35357

94

auth_type = password

95

project_domain_name = default

96

user_domain_name = default

97

region_name = RegionOne

98

project_name = service

99

username = neutron

100

password = NEUTRON_PASS

101

service_metadata_proxy = true

102

metadata_proxy_shared_secret = METADATA_SECRET

103

#再次驗證控制節(jié)點nova配置文件

104

md5sum /etc/nova/nova.conf

105

2c5e119c2b8a2f810bf5e0e48c099047  /etc/nova/nova.conf

6:同步數(shù)據(jù)庫(創(chuàng)表)

xxxxxxxxxx

3

1

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

2

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \

3

  --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

7:啟動服務

xxxxxxxxxx

9

1

systemctl restart openstack-nova-api.service

2

systemctl enable neutron-server.service \

3

  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \

4

  neutron-metadata-agent.service

5

systemctl restart neutron-server.service \

6

  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \

7

  neutron-metadata-agent.service

8

#驗證方法

9

openstack  network  agent list

7.5.2 在計算節(jié)點上安裝neutron服務

1:安裝

xxxxxxxxxx

1

1

yum install openstack-neutron-linuxbridge ebtables ipset

2:配置

xxxxxxxxxx

50

1

#修改neutron.conf

2

vim /etc/neutron/neutron.conf

3

[DEFAULT]

4

transport_url = rabbit://openstack:123456@controller

5

auth_strategy = keystone

6

[agent]

7

[cors]

8

[cors.subdomain]

9

[database]

10

[keystone_authtoken]

11

auth_uri = http://controller:5000

12

auth_url = http://controller:35357

13

memcached_servers = controller:11211

14

auth_type = password

15

project_domain_name = default

16

user_domain_name = default

17

project_name = service

18

username = neutron

19

password = NEUTRON_PASS

20

[matchmaker_redis]

21

[nova]

22

[oslo_concurrency]

23

lock_path = /var/lib/neutron/tmp

24

[oslo_messaging_amqp]

25

[oslo_messaging_kafka]

26

[oslo_messaging_notifications]

27

[oslo_messaging_rabbit]

28

[oslo_messaging_zmq]

29

[oslo_middleware]

30

[oslo_policy]

31

[qos]

32

[quotas]

33

[ssl]

34

##linux_agent配置文件

35

scp -rp 10.0.0.11:/etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini

36

##在計算節(jié)點上晕窑,再次修改nova.conf

37

vim  /etc/nova/nova.conf

38

[neutron]

39

url = http://controller:9696

40

auth_url = http://controller:35357

41

auth_type = password

42

project_domain_name = default

43

user_domain_name = default

44

region_name = RegionOne

45

project_name = service

46

username = neutron

47

password = NEUTRON_PASS

48

#校驗

49

md5sum /etc/nova/nova.conf

50

91cc8aa0f7e33d7b824301cc894e90f1  /etc/nova/nova.conf

3:啟動

xxxxxxxxxx

3

1

systemctl restart openstack-nova-compute.service

2

systemctl enable neutron-linuxbridge-agent.service

3

systemctl start neutron-linuxbridge-agent.service
  • 7.6 安裝dashboard服務

    #計算節(jié)點安裝dashboard

    1:安裝

xxxxxxxxxx

1

1

yum install openstack-dashboard -y

2:配置

rz local_settings

cat local_settings >/etc/openstack-dashboard/local_settings

3:啟動

systemctl start httpd

4: 訪問dashboard

訪問:http://10.0.0.31/dashboard

  • 7.7 啟動一臺云主機

xxxxxxxxxx

13

1

#創(chuàng)建網(wǎng)絡

2

neutron net-create --shared --provider:physical_network provider --provider:network_type flat WAN

3

neutron subnet-create --name subnet-wan --allocation-pool \

4

start=10.0.0.100,end=10.0.0.200 --dns-nameserver 223.5.5.5 \

5

--gateway 10.0.0.254 WAN 10.0.0.0/24

6

#創(chuàng)建硬件配置方案

7

openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

8

#上傳秘鑰對

9

ssh-keygen -q -N "" -f ~/.ssh/id_rsa

10

openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

11

#安全組開放ping和ssh

12

openstack security group rule create --proto icmp default

13

openstack security group rule create --proto tcp --dst-port 22 default
  • 7.8 安裝塊存儲cinder服務 云硬盤服務

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抑片,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杨赤,更是在濱河造成了極大的恐慌敞斋,老刑警劉巖截汪,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異植捎,居然都是意外死亡衙解,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門焰枢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚓峦,“玉大人,你說我怎么就攤上這事济锄∈钜” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵拟淮,是天一觀的道長干茉。 經(jīng)常有香客問我谴忧,道長很泊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任沾谓,我火速辦了婚禮委造,結果婚禮上,老公的妹妹穿的比我還像新娘均驶。我一直安慰自己昏兆,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布妇穴。 她就那樣靜靜地躺著爬虱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腾它。 梳的紋絲不亂的頭發(fā)上跑筝,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音瞒滴,去河邊找鬼曲梗。 笑死,一個胖子當著我的面吹牛妓忍,可吹牛的內(nèi)容都是我干的虏两。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼世剖,長吁一口氣:“原來是場噩夢啊……” “哼定罢!你這毒婦竟也來了?” 一聲冷哼從身側響起旁瘫,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤引颈,失蹤者是張志新(化名)和其女友劉穎耕皮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝙场,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡凌停,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了售滤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罚拟。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖完箩,靈堂內(nèi)的尸體忽然破棺而出赐俗,到底是詐尸還是另有隱情,我是刑警寧澤弊知,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布阻逮,位于F島的核電站,受9級特大地震影響秩彤,放射性物質(zhì)發(fā)生泄漏叔扼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一漫雷、第九天 我趴在偏房一處隱蔽的房頂上張望瓜富。 院中可真熱鬧,春花似錦降盹、人聲如沸与柑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽价捧。三九已至,卻和暖如春涡戳,著一層夾襖步出監(jiān)牢的瞬間结蟋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工妹蔽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留椎眯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓胳岂,卻偏偏與公主長得像编整,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乳丰,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 云計算介紹 云計算是一種按使用量付費的模式掌测,這種模式提供可用的、便捷的产园、按需的網(wǎng)絡訪問汞斧,進入可配置的計算資源共享池...
    泡菜愛上WaSabi閱讀 1,740評論 0 2
  • 1夜郁、什么是云計算? 云計算是一種按量付費的模式粘勒!云計算的底層是通過虛擬化技術來實現(xiàn) 2竞端、云計算的服務類型 2.1 ...
    渡九_6149閱讀 521評論 0 0
  • 一、云計算簡介 1.概念 云計算是一種按量付費的模式庙睡!云計算的底層是通過虛擬化技術來實現(xiàn)的 2.服務類型 IAAS...
    荊俊瑋閱讀 576評論 0 0
  • 一事富、nova介紹: Nova 是 OpenStack 最核心的服務,負責維護和管理云環(huán)境的計算資源乘陪。OpenSta...
    WickJohn閱讀 1,685評論 0 3
  • 有一天统台,兩只井底之蛙對造物主說:“請你幫助我們離開這個巴掌大的地方吧》纫兀”造物主說:“行贱勃,現(xiàn)在有兩條路供你們...
    黑暗桎梏閱讀 203評論 1 2