vim /etc/libvirt/qemu/networks/openstack.xml #创建一个名为openstack的虚拟网络
openstack #openstack为虚拟交换机的名字
#桥接nat方式可以连通外网
#ip为192.168.100.254,相当于虚拟机网关
#DHCP自动分配ip范围是100-200
virsh net-define /etc/libvirt/qemu/networks/openstack.xml #定义openstack虚拟网络,用绝对路径定义
virsh net-start openstack #启动openstack虚拟网络
ifconfig #ifconfig验证
qemu-img 是虚拟机的磁盘管理命令,支持非常多 的磁盘格式,例如raw、qcow2、vdi、vmdk等等
qemu-img 命令格式 :
qemu-img 命令 参数 块文件名称 大小
常用的命令有 :
create 创建一个磁盘
convert 转换磁盘格式
info 查看磁盘信息
resize 扩容磁盘空间
创建新的镜像盘文件
qemu-img create -f 格式 磁盘路径 大小
qemu-img create -f qcow2 disk.img 50G
查询镜像盘文件的信息
qemu-img info 磁盘路径
qemu-img info disk.img
-b 使用后端模板文件
qemu-img create -b disk.img -f qcow2 disk1.img
准备服务主机 3 台,配置如下:
创建openstack 管理主机:
cp /var/lib/libvirt/images/.node_base.xml /etc/libvirt/qemu/openstack.xml #拷贝配置文件
cd /var/lib/libvirt/images/ #切换到指定目录
qemu-img create -f qcow2 -b .node_base_qcow2 openstack,img 50G #创建虚拟磁盘文件
vim /etc/libvirt/qemu/openstack.xml #修改虚拟机配置文件
9 openstack #虚拟机域名
11 7488282 #虚拟机最大使用内存,可以手动调整
12 7488282 #创建虚拟机使用内存
13 2 #cup核数
33 #虚拟机硬盘文件
46 #定义桥接网络源设备,
[root@GGD images]# virsh define /etc/libvirt/qemu/openstack.xml #定义指定文件创建虚拟机
[root@GGD images]# virsh start openstack #启动虚拟机
[root@GGD images]# virsh console openstack #连接虚拟机
创建node01节点主机:
cp /var/lib/libvirt/images/.node_base.xml /etc/libvirt/qemu/node01.xml #拷贝配置文件
cd /var/lib/libvirt/images/ #切换到指定目录
qemu-img create -f qcow2 -b .node_base_qcow2 node01,img 100G #创建虚拟磁盘文件
vim /etc/libvirt/qemu/node01.xml #修改虚拟机配置文件
9 openstack #虚拟机域名
11 5488282 #虚拟机最大使用内存,可以手动调整
12 5488282 #创建虚拟机使用内存
13 2 #cup核数
33 #虚拟机硬盘文件
46 #定义桥接网络源设备,
[root@GGD images]# virsh define /etc/libvirt/qemu/node01.xml #定义指定文件创建虚拟机
[root@GGD images]# virsh start node01 #启动虚拟机
[root@GGD images]# virsh console node01 #连接虚拟机
创建node02 节点主机:
cp /var/lib/libvirt/images/.node_base.xml /etc/libvirt/qemu/node02.xml #拷贝配置文件
cd /var/lib/libvirt/images/ #切换到指定目录
qemu-img create -f qcow2 -b .node_base_qcow2 openstack,img 100G #创建虚拟磁盘文件
vim /etc/libvirt/qemu/node02.xml #修改虚拟机配置文件
9 openstack #虚拟机域名
11 5488282 #虚拟机最大使用内存,可以手动调整
12 5488282 #创建虚拟机使用内存
13 2 #cup核数
33 #虚拟机硬盘文件
46 #定义桥接网络源设备,
[root@GGD images]# virsh define /etc/libvirt/qemu/node02.xml #定义指定文件创建虚拟机
[root@GGD images]# virsh start node02 #启动虚拟机
[root@GGD images]# virsh console node02 #连接虚拟机
系统环境准备
openstack 安装时候需要使用外部 dns 来解析域名
vim /etc/resolv.conf
nameserver 114.114.114.114 #设置真机DNS地址
注:去掉search开头的所有行
虚拟机DNS设置(三台一样配置):
vim /etc/resolv.conf
nameserver 192.168.100.254
注:去掉search开头的所有行
将域名对应的 IP 解析到我们安装的openstack 服务器
vim /etc/hosts
192.168.100.10 openstack
192.168.100.11 node01
192.168.100.12 node02
• 注:DNS 服务器不能与 openstack 安装在同一台主机上
node 服务器之间的时间必须保持一致(三台配置NTP)
• 编辑配置文件 vim /etc/chrony.conf
server 192.168.100.254 iburst
systemctl restart chronyd #重启服务
• 测试服务
[student@openstack ~]# chronyc sources -v #出现*
号代表NTP时间可用
^* gateway 2 6 17 62 -753us[-7003us] +/- 24ms
[root@GGD ~]# vim /etc/fstab #真机上挂载文件
/var/lib/libvirt/images/iso/CentOS7-1804.iso /var/ftp/centos-1804 iso9660 defaults 0 0
/linux-soft/04/openstack/RHEL7OSP-10.iso /var/ftp/openstack/ iso9660 defaults 0 0
/linux-soft/04/openstack/RHEL7-extras.iso /var/ftp/extras/ iso9660 defaults 0 0
/var/lib/libvirt/images/iso/CentOS7-1804.iso /var/ftp/node/ iso9660 defaults 0 0
配置 yum 源,软件仓库一共 4 个,软件包共有10,670
[root@openstack ~]# vim /etc/yum.repos.d/openstack.repo
[openstack1]
name=openstack
baseurl=ftp://192.168.100.254/openstack/rhel-7-server-openstack-10-rpms
enabled=1
gpgcheck=0
[openstack2]
name=openstack
baseurl=ftp://192.168.100.254/openstack/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0
[extras]
name=extras
baseurl=ftp://192.168.100.254/extras
enabled=1
gpgcheck=0
安装openstack期间,有些软件包所依赖的软件包,并没有在安装过程中安装,这些软件包需提前安装
yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
yum -y install qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools #node01,node02添加依赖包
配置packstack应答文件 (只需在管理节点上安装)
安装 openstack 需要使用 packstack
首先安装 openstack-packstack
[root@openstack ~]# yum install -y openstack-packstack
使用 packstack 创建通用应答文件
[root@openstack ~]# packstack --gen-answer-file=answer.ini
修改应答文件
[root@openstack ~]# vim answer.ini
42: CONFIG_SWIFT_INSTALL=n
45: CONFIG_CEILOMETER_INSTALL=n
49: CONFIG_AODH_INSTALL=n
53: CONFIG_GNOCCHI_INSTALL=n
75: CONFIG_NTP_SERVERS=192.168.100.254 #NTP服务器地址
98: CONFIG_COMPUTE_HOSTS=192.168.100.11,192.168.100.12 #安装起虚拟机程序
102: CONFIG_NETWORK_HOSTS=192.168.100.10,192.168.100.11,192.168.100.12 #配置nova网络以逗号隔开,把需要的IP添加到这里
333: CONFIG_KEYSTONE_ADMIN_PW=admin #管理员密码
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan #设置支持flat扁平网络,默认支持vxlan网络,设置flat扁平网络可以跟外部同信
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex #定义一个虚拟交换机名字,固定叫br-ex需要绑定网卡
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 #把eth0绑定到交换机外网口,设定外网通讯端口
1179: CONFIG_PROVISION_DEMO=n #取消例子安装
• 如果前期环境准备无误,只要耐心等待安装结束即可
• 根据主机配置不同,安装过程需要20分钟左右或更久
• 如果出现错误,根据屏幕上给出的日志文件进行排错
br-ex为外部OVS网桥
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT=“yes”
NM_CONTROLLED=“no”
IPADDR=“192.168.100.10”
NETMASK=“255.255.255.0”
GATEWAY=“192.168.100.254”
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=“static”
TYPE=OVSBridge
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
Horizon是一个用以管理、控制OpenStack服务的Web控制面板,也称之为Dashboard仪表盘
• 可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例
• 基于python的django web框架进行开发
• 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
• 访问与安全管理:创建安全群组,管理密钥对,设置浮动IP等
• 偏好设定:对虚拟硬件模板可以进行不同偏好设定
• 镜像管理:编辑或删除镜像
• 用户管理:创建用户等
• 卷管理:创建卷和快照
• 对象存储处理:创建、删除容器和对象
• 安装虽然没有报错,但默认无法打开 Horizon,这是一个软件的配置 BUG
/etc/httpd/conf.d/15-horizon_vhost.conf
WSGIApplicationGroup %{GLOBAL}
ServerAlias localhost
WSGIDaemonProcess apache group=apache processes=3
threads=10 user=apache
WSGIProcessGroup apache
WSGIApplicationGroup %{GLOBAL} <— 这里添加
[root@openstack ~]# source ~/keystonerc_admin
[root@openstack ~(keystone_admin)]# env | grep OS
HOSTNAME=openstack
OS_REGION_NAME=RegionOne
OS_PASSWORD=admin #登入密码
OS_AUTH_URL=http://192.168.100.10:5000/v2.0
OS_USERNAME=admin #登入用户名
OS_TENANT_NAME=admin
• 使用帮助
[root@openstack ~(keystone_admin)]# openstack help
到这里openstack云平台就可以用web登入了
用户名:admin
密码: 初始登入密码在 keystonerc_admin 文件里