云计算
1:什么是云计算?
云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的!
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 ) 企业邮箱服务 cdn服务 rds数据库 开发+运维
3:为什么要用云计算
小公司:10台 20w+ idc 5w + 100M 10W, 10台云主机,前期投入小,扩展灵活,风险小
大公司:闲置服务器计算资源,虚拟机,出租(超卖)
64G 服务器 64台1G 320台1G 64台 大公司自己的业务 264台 租出去
国企,银行
公有云:方便不安全;谁都可以使用
私有云:安全不方便;自己搭建,公司内部可以使用
混合云:私有云+公有云
4:云计算的基础KVM虚拟化
4.1:什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。
4.2 :虚拟化软件的差别
linux虚拟化软件: qemu 软件纯模拟全虚拟化软件,读写特别慢!AIX,兼容性好!
xen(半) :读写性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen kvm
KVM(linux): 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核 centos6 kvm 性能较好,兼容较好
vmware workstations: 图形界面
virtual box: 图形界面 Oracle
4.3 安装kvm虚拟化管理工具
KVM:Kernel-based Virtual Machine,内核虚拟化软件
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)作用:管理虚拟机的虚拟磁盘
环境要求:
centos 7.4 7.6 vmware 宿主机 kvm虚拟机
内存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虚拟机
分发软件TightVNC或者VNC-Viewer-6.19.325 宿主机
微软的远程桌面
vnc:远程的桌面管理工具 向日葵 微软的远程桌面
systemctl start libvirtd.service
systemctl status libvirtd.service #自动是开机自启状态
10.0.0.11 宿主机
建议虚拟机内存不要低于1024M,否则安装系统特别慢!
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 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名字
--memory 1024 虚拟机的内存,默认单位MB
--vcpus 1 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10 指定硬盘的路径,硬盘格式,大小默认单位G
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso 指定是光盘安装
--network network=default 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0 显示器vnc那个网段的都能使用
--noautoconsole 无实际含义,可以不加
4.5:kvm虚拟机的virsh日常管理和配置
virsh list #仅看到正在运行的
virsh list --all #查看所有的虚拟机(包括查看进程ps -ef(qemu-kvm)和/etc/libvirt/qemu/下的配置文件)
virsh start centos7 #启动指定虚拟机centos7
virsh shutdown centos7 #仅能关机有系统的虚拟机
virsh destroy centos7 #拔电源关机
virsh reboot centos7 #重启,有系统的
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 #开机自启,配置后会创建一个软链接,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 #取消开机自启,相当于删除软链接
创建软链接相当于开机自启
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
模拟生产故障:关机 虚拟机消失,关一台少一台
原因:虚拟机在运行时被 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虚拟机虚拟磁盘格式转换和快照管理
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 #创建一块大小为2G的raw格式的磁盘
qemu-img resize test.qcow2 +20G #给硬盘增加20G的大小,不建议减小硬盘
qemu-img convert -f raw -O qcow2 wang.raw wang.qcow2 #磁盘格式转换
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
创建快照时创建别名
[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:链接克隆
手动:
创建引用磁盘,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
连接克隆的磁盘,他不同于其他磁盘,因为连接克隆是克隆虚拟机的当前状态,所以磁盘的容量只有几K
[root@kvm01 opt]# qemu-img info web06.qcow2
image: web06.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes) #实际大小
disk size: 448K #现在状态下的大小
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
#创建引用磁盘
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虚拟机的桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24
4.8.1:创建桥接网卡
创建桥接网卡命令
virsh iface-bridge eth0 br0
取消桥接网卡命令
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 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
<interface type='bridge'>
<source bridge='br0'/>
b:启动虚拟机,测试虚拟机网络
如果上层没有开启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:热添加技术
热添加硬盘、网卡、内存、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,分别存放的是数据属性和存储实际数据
虚拟机,卸载分区
[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 在宿主机上调整容量qemu-img resize 在宿主机上再次附加硬盘virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 在虚拟机里再次挂载扩容盘 在虚拟机里用xfs_growfs更新扩容盘超级块信息
4.9.2 kvm虚拟机在线热添加网卡
#临时添加,重启后无
virsh attach-interface web03 --type bridge --source br0 --model virtio
#virtio:不加这个参数添加的网卡为enss,加上就是eth
#加上--config 永久添加
virsh attach-interface web03 --type bridge --source br0 --model virtio --config
#摘除,ifconfig看网卡的mac地址
virsh detach-interface web03 --type bridge --mac 52:54:00:16:3e:6c
4.9.3 kvm虚拟机在线热添加内存
#临时热修改内存
virsh setmem web03 512M
#永久热修改内存
virsh setmem web03 1024M --config
#调整虚拟机内存最大值
virsh setmaxmem web04 4G
#手动调整
<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核数
virsh setvcpus web04 2
#永久添加cpu核数
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虚拟机热迁移(共享的网络文件系统)
迁移的假如是链接克隆的虚拟机,最好把源主机也迁移过去。已创建快照的虚拟机不允许导出、克隆、迁移操作
冷迁移kvm虚拟机:配置文件,磁盘文件
冷迁移,就是将虚拟机先关机再进行迁移。其原理可以使用scp实现
准备环境:
###两边宿主机环境必须保持一致
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 #检查是否能进入系统
热迁移kvm虚拟机:配置文件,nfs共享
热迁移,就是不关闭虚拟机,虚拟机在迁移的过程中仍然保持着原来的状态。
1):kvm虚拟机热迁移 1:两边的环境(桥接网卡)
主机名 | ip | 内存 | 网络 | 软件需求 | 虚拟化 |
---|---|---|---|---|---|
kvm01 | 10.0.0.11 | 2G | 创建br0桥接网卡 | kvm和nfs | 开启虚拟化 |
kvm02 | 10.0.0.12 | 2G | 创建br0桥接网卡 | 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
###两边宿主机环境一致
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:关闭保护机制,虚拟机在热迁移的时候会有一些数据还没有存放在磁盘,迁移过去会提示安全问题
persistent:永久迁移
undefinesource:将迁移过去的虚拟机顺便删除了
5: ESXI虚拟化系统
5.1 安装ESXI
5.1.1创建虚拟机
一路回车,直到
按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 资产管理 cmdb
kvm管理平台,数据库工具
信息:宿主机,总配置,剩余的总配置 虚拟机的信息,配置信息,ip地址,操作系统
带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层 自动化管理kvm宿主机,云主机定制化操作
服务器, 20核心 1T内存 96T
资源浪费,linux环境特别乱,,kvm虚拟机
6.使用脚本自动化部署openstack M版
部署openstack 克隆一台openstack模板机:
all-in-one环境
4G内存,开启虚拟化,挂载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系统上修改host解析(10.0.0.11 controller)
添加node节点: 修改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主控制节点,node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
7:一步一步部署一个openstack集群
7.1 openstack基础架构
7.1:准备环境
主机名称 | 角色 | ip | 内存 |
---|---|---|---|
controller | 控制节点 | 10.0.0.11 | 3G或4G |
compute1 | 计算节点 | 10.0.0.31 | 1G |
注意:主机之间相互host解析
7.1.1 时间同步
#服务端,controller节点
vim /etc/chrony.conf
allow 10.0.0.0/24
systemctl restart chronyd
#客户端,compute1节点
vim /etc/chrony.conf
server 10.0.0.11 iburst
systemctl restart chronyd
验证:同时执行date
7.1.2:配置yum源,并安装客户端
#所有节点
#配置过程:
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:安装数据库
#控制节点
yum install mariadb mariadb-server python2-PyMySQL -y
##openstack所有组件使用python开发,openstack在连接数据库需要用到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
#启动数据库
systemctl start mariadb
systemctl enable mariadb
#数据库安全初始化
mysql_secure_installation
回车
n
一路y
7.1.3 安装消息队列rabbitmq
#控制节点
#安装消息队列
yum install rabbitmq-server
#启动rabbitmq
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service
#在rabbitmq创建用户
rabbitmqctl add_user openstack 123456
#为刚创建的openstack授权
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
7.1.4 安装memcache缓存
#控制节点
#安装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服务
#创库授权
##登录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插件调用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
#同步数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
##切到普通用户下,使用指定的shell执行某一条命令
##检查数据是否同步成功
mysql keystone -e 'show tables;'|wc -l
#初始化令牌凭据
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
#小优化
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
#声明环境变量
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
#创建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:创库授权
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上创建用户,关联角色
9
openstack user create --domain default --password 123456 glance
10
openstack role add --project service --user glance admin
11
12
3:keystone上创建服务,注册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:修改配置文件(连接数据库,keystone授权)
26
##glance-api 上传下载删除
27
##glance-registry 修改镜像的属性 x86 根分区大小
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:同步数据库(创表)
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 控制节点安装nova服务
1:创库授权
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上创建用户,关联角色
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上创建服务,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:修改配置文件(连接数据库,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网络服务,禁用nova内置防火墙
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>这一行上面增加以下内容
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:同步数据库(创表)
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计算节点安装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:控制节点上验证
openstack compute service list
5:在控制节点上
发现计算节点:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
7.5 安装neutron服务
7.5.1 在控制节点上安装neutron服务
1:创库授权
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上创建用户,关联角色
xxxxxxxxxx
2
1
openstack user create --domain default --password NEUTRON_PASS neutron
2
openstack role add --project service --user neutron admin
3:keystone上创建服务,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:安装服务软件包
#选择网络选项1
xxxxxxxxxx
2
1
yum install openstack-neutron openstack-neutron-ml2 \
2
openstack-neutron-linuxbridge ebtables -y
5:修改配置文件(连接数据库,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
####编辑控制节点。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
#再次验证控制节点nova配置文件
104
md5sum /etc/nova/nova.conf
105
2c5e119c2b8a2f810bf5e0e48c099047 /etc/nova/nova.conf
6:同步数据库(创表)
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 在计算节点上安装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
##在计算节点上,再次修改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服务
#计算节点安装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
#创建网络
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
#创建硬件配置方案
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服务 云硬盘服务