云計算
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
-
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服務 云硬盤服務