使用一台物理机虚拟化两台虚拟机(openstack+nova)
物理机配置:
- CPU型号:Intel® Core™ i5-2320 CPU @ 3.00GHz(亲测笔记本3代i5带不起来)
- 内存至少16G;Openstack 8G;nova 6G(4G我的起来了,却看见别人安装时内存报错,建议6G)
- 物理机系统Centos7.0
1、物理机
禁用 selinux
#vim /etc/selinux/config
SELINUX=disabled
禁用 firewalld
#systemctl stop firewalld
#systemctl mask firewalld
搭建KVM虚拟化平台和FTP
#yum install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-manager vsftpd
#systemctl enable libvirtd #开机自启libvirtd服务
#systemctl enable vsftpd #起不来的查看配置文件/etc/vsftpd/vsftpd.conf 是否listen=YES;listen_ipv6=NO
挂载yum源在FTP上
#mkdir /var/ftp/centos7_ISO
#mkdir /var/ftp/openstack
#mkdir /var/ftp/openstack-ext
#echo '/root/ISO/CentOS7-1708.iso /var/ftp/centos7_ISO iso9660 defaults 0 0' >>/etc/fstab
#echo '/root/ISO/RHEL7OSP-10.iso /var/ftp/openstack iso9660 defaults 0 0' >>/etc/fstab
#echo 'root/ISO/RHEL7-extras.iso /var/ftp/openstack-ext iso9660 defaults 0 0' >>/etc/fstab
重启系统
1.2、物理机
#安装配置转发DNS
https://blog.csdn.net/qq_38900565/article/details/83869495
#时间服务器,server、 client
https://blog.csdn.net/qq_38900565/article/details/83869856
1.3、创建虚拟交换机
#vim /etc/libvirt/qemu/networks/vbr.xml
<network>
<name>vbr</name>
<bridge name="vbr"/> 网络设备名
<forward mode="nat"/> 表示可以上网
<ip address="192.168.3.254" network="255.255.255.0">设备IP地址
<dhcp><range start="192.168.3.100" end="192.168.3.200"/></dhcp>
</ip>
</network>
#vim /etc/libvirt/qemu/networks/private.xml
<network>
<name>private1</name>
<bridge name="private1"/> 网络设备名
<ip address="192.168.4.254" network="255.255.255.0">设备IP地址
</ip>
</network>
#virsh net-list --all
#virsh net-define /etc/libvirt/qemu/networks/private.xml
#virsh net-define /etc/libvirt/qemu/networks/vbr.xml
#virsh net-start vbr
#virsh net-autostart vbr
#virsh net-list --all
1.4、创建后端盘node.qcow2(方便以后快速批量生成nova计算节点)
1.4.1创建后端盘
#cd /var/lib/libvirt/images/
#qemu-img create -f qocw2 node.qcow2 5G
1.4.2使用自己创建的后端盘和网络新建虚拟机
开始安装后,使用英语;时区选上海;关闭KUDMP;只分一个/分区(标准化分区)
2.配置模板虚拟机
进入系统输入root和密码后:
2.1. 配置yum源
#vi /etc/yum.repos.d/rhel7_4.repo
[rhel7.4]
name=rhel7.4
baseurl=ftp://192.168.3.254/rhel7.4 #网桥地址
enabled=1
gpgcheck=0
2.2. 禁用selinux disabled,#systemctl disabled firewalld重启
2.3. 配置eth0,卸载防火墙与NetworkManager
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPV6INIT=no
BOOTPROTO=dhcp
TYPE=Ethernet
#yum -y remove *firewalld* NetworkManager*
#systemctl stop NetworkManager
#systemctl restart network
2.4. 系统配置
#sed -i 's/gpgcheck=0/gpgcheck=1/g' /etc/yum.repos.d/rhel7_4.repo
#rpm --import ftp://192.168.3.254/centos7_ISO/RPM-GPG-KEY-redhat-release #导入gpgkey
#yum install net-tools vim-enhanced bridge-utils psmisc #安装常用软件和系统命令
#echo 'NOZEROCONF="yes"' >>/etc/sysconfig/network #禁止空路由(会与后面的openstact冲突)
#vim /etc/default/grub #打开串口,否则console会卡住进不去
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true" #禁用uuid,启用卷标实现引导
GRUB_ENABLE_LINUX_LABEL="ture"
#grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成grub.cfg
/etc/fstab文件中到UUID手工修改系统设备
blkid查看uuid对应的磁盘设备,修改fstab文件
/dev/vda1: UUID=“5abb5dfe-2ca2-4dfc-9f2b-2b9fb8a59d26” TYPE=“xfs”
把etc/fstab的uuid换成/dev/vda1
2.5. 最后一步,安装分区扩展软件
#yum install -y cloud-utils-growpart
关闭虚拟机后执行信息清理工作
#virt-sysprep -d 虚拟机名
注:以后使用该后端创建虚拟机,第一次开机执行扩容根目录
/usr/bin/growpart /dev/vda1 //扩容分区lsblk
/usr/sbin/xfs_growfs/ //扩容文件系统df
3.创建openstack虚拟机
3.1导出虚拟机xml文件,让node成为真正意义后端盘
#virsh dumpxml node > /tmp/demo.xml
#virsh undefine node #使node虚拟机不可进入,防止写操作
3.2编辑openstack虚拟机xml文件和创建前端盘(以node为后端映射)
先在物理机创建一个硬盘
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 硬盘名 20G
#cp /tmp/demo.xml > /etc/libvirt/qemu/openstack.xml
#vi /etc/libvirt/qemu/openstack.xml
<name>node</name> #改为openstack
<uuid>321856cc-2a05-4376-b9d9-5ea88c252ed0</uuid> #该行删除
<memory unit='KiB'>8231488</memory> #内存改为8G+
<currentMemory unit='KiB'>8231488</currentMemory> #同上
<vcpu placement='static'>2</vcpu> #内核数写2
<cpu mode='host-passthrough'> </cpu>
<clock offset=’localtime’ />
去掉安全标签,可以删除<seclabel>
#添加网卡
<interface type=’network’>
<source network=’private’ />
<model type=’virtio’ />
<target dev='vnet0'/>
</interface>
#添加硬盘
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 硬盘名 20G
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2’ />
<source file=’/var/lib/libvirt/images/硬盘名’ />这里写你创建的硬盘路径位置
<target dev=’vdb’ bus=’scsi’ />
</disk>
定义虚拟机
virsh define /etc/libvirt/qemu/openstack.xml
virsh start openstack
4. Openstack安装
4.1进入新建虚拟机openstack:
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private
设置静态 IP,默认网关 192.168.3.254
#vim /etc/sysconfig/network-scripts/ifcfg-eth0 #复制该文件到该目录下重命名ifcfg-eth1
DEVICE=eth0 #eth1
ONBOOT=yes
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.3.1 #eth1改为192.168.4.1
GATEWAY="192.168.3.254" #默认网关 eth1不需要该行
#echo "192.168.3.1 openstack openstack.test.com" >>/etc/hosts
#echo "192.168.3.2 nova nova.test.com" >>/etc/hosts
4.2yum源配置
#vim /a.txt
rhel-7-server-rhceph-2-osd-rpms
rhel-7-server-openstack-10-devtools-rpms
rhel-7-server-rhceph-2-tools-rpms
rhel-7-server-openstack-10-optools-rpms
rhel-7-server-rhscon-2-agent-rpms
rhel-7-server-openstack-10-rpms
rhel-7-server-rhscon-2-installer-rpms
rhel-7-server-openstack-10-tools-rpms
rhel-7-server-rhscon-2-main-rpms
rhel-7-server-rhceph-2-mon-rpms
# for i in `cat /a.txt` ; do echo "[$i]
name={$i}
baseurl=ftp://192.168.3.254/openstack/${i}
enabled=1
gpgcheck=0" >> /etc/yum.repo.d/openstack.repo; done
#vim /etc/yum.repos.d/openstack-ext.repo
[openstack_extras]
name=openstack extras
baseurl=ftp://192.168.3.254/openstack-ext
enabled=1
gpgcheck=0
安装虚拟化平台(nova也要)
yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
4.3将openstack虚拟机的DNS和NTP指向192.168.3.254
#echo "nameserver 192.168.3.254" >/etc/resolv.conf
#vim /etc/chrony.conf 配置指向物理机的IP
server 192.168.1.254 iburst
验证:
ping www.baidu.com
chronyc sources -v
4.4安装openstack
配置卷组
#pvcreate /dev/vdb
#vgcreate cinder-volumes /dev/vdb
#vgs
#yum install -y openstack-packstack
#packstack --gen-answer-file answer.ini
编辑answer.ini
11: CONFIG_DEFAULT_PASSWORD=Test #配置默认密码
42: CONFIG_SWIFT_INSTALL=n #设置禁用 swift (对象存储) 模块
75: CONFIG_NTP_SERVERS=192.168.3.254 #NTP 服务器地址
98: CONFIG_COMPUTE_HOSTS=192.168.3.1#计算节点IP地址
102: CONFIG_NETWORK_HOSTS=192.168.3.1 #需要配置vxlan网络的 IP 地址
554: CONFIG_CINDER_VOLUMES_CREATE=n #禁用自动创建 cinder-volumns 卷组
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan #设置网络支持协议
876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5 #设置组播地址
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex #设置虚拟交换机
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 #设置虚拟交换机所连接的物理网卡
936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1#设置隧道网络使用的网卡
1179:CONFIG_PROVISION_DEMO=n #禁用测试的DEMO
#packstack --answer-file=answer.ini
修改 /etc/httpd/conf.d/15-horizon_vhost.conf
添加 WSGIApplicationGroup %{GLOBAL}
#apachectl graceful #重新载入配置
#cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD=70ad0dbd9da248f9
export OS_AUTH_URL=http://192.168.3.1:5000/v2.0
export PS1='[\u@\h \W(keystone_admin)]\$ '
物理机#firefox 192.168.3.1 出现以下页面:输入上面的admin和密码:70ad0dbd9da248f9