构建Openstack镜像的环境搭建

虽然Openstack官方文档上有提供了各类操作系统的Openstack镜像,但我们往往需要根据实际情况进行一些自定义设置,因此本文主要介绍如何在自己的笔记本或台式机上通过VMware构建一个可以用于制作Openstack镜像的环境,以便可以快速的制作自定义的Openstack镜像。

环境介绍


宿主机操作系统:Windows7旗舰版

软件:VMware WorkStation12 Pro

虚拟机操作系统:CentOS7.1

虚拟机配置:2核4G

虚拟机IP:192.168.128.129

网卡模式:NAT

镜像:CentOS-7-x86_64-Minimal-1503-01.iso

镜像下载链接:http://archive.kernel.org/centos-vault/

VMware虚拟机操作系统安装


此步请参考之前的文章如何在VMware下安装RedHat6.X虚拟机

注:记得在VMware里将虚拟机处理器中的“虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)”选项勾选

初始化配置


1
2
3
4
5
6
iptables -F
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
reboot

安装epel源


https://fedoraproject.org/wiki/EPEL/zh-cn下载对应操作系统版本的epel-release包的最新版本,然后上传到虚拟机并安装

1
rpm -ivh epel-release-latest-7.noarch.rpm

安装KVM


1
2
3
4
yum install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 dbus-devel virt-clone virt-manager libvirt libvirt-python -y
yum groupinstall "Virtualization Host" -y
yum install qemu-system* -y
systemctl restart libvirtd

修改网卡配置文件


修改网卡配置文件,重启网络服务,将虚拟机网卡桥接到br网桥上,此示例中虚拟机网卡名为eno16777736,对应的网卡配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
cat > /etc/sysconfig/network-scripts/ifcfg-eno16777736 << EOF 
BOOTPROTO=static
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
BRIDGE=br
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-br << EOF
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.128.129
NETMASK=255.255.255.0
GATEWAY=192.168.128.2
DNS1=192.168.128.2
NAME=br
DEVICE=br
ONBOOT=yes
EOF

DEVICE、NAME、IPADDR、NETMASK、GATEWAY参数请根据实际情况进行相应修改

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network

创建工作目录


1
2
mkdir /tvm/
cd /tvm/

上传虚拟机镜像


通过winscp或Xftp等支持ssh的远程文件传输工具上传虚拟机镜像(raw镜像或qcow2镜像)到/tvm下,若镜像是qcow2格式的,先转换成raw格式的。

1
qemu-img convert -f qcow2 CentOS7.1_XM_170819.qcow2 -O raw CentOS7.1_XM_170819.raw

编辑XML文件并启动虚拟机


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# cat templates.xml
<domain type='kvm'>
<name>koenli</name>
<memory>1048576</memory>
<vcpu>1</vcpu>
<cpu mode='host-model'><model fallback='allow'/><topology sockets='1' threads='1' cores='4' /></cpu>
<os><type arch='x86_64' machine='pc-i440fx-2.0'>hvm</type><boot dev='cdrom'/><boot dev='hd'/></os>
<features><acpi/><apic/><pae/></features>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>

<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file'><driver name='qemu' type='raw' cache='none'/><source file='/tvm/rhel7.1.raw'/><target dev='vda' bus='virtio'/><serial>bc-system</serial></disk>

<disk type='file' device='cdrom'>
<target dev='hdc' bus='ide'/>
<source file="" />
<readonly/>
</disk>

<graphics type='vnc' port='22000' passwd='123456' autoport='no' keymap='en-us' listen='0.0.0.0'/>
<input type='tablet' bus='usb'/>
<interface type='bridge'><source bridge='br'/><mac address='D0:0D:7C:DC:AA:4C'/><model type='virtio'/></interface>
<interface type='bridge'><source bridge='br'/><mac address='D0:0D:7C:DC:AA:4D'/><model type='virtio'/></interface>
</devices>

<clock offset="localtime" />
</domain>

将图中红色方框处改成虚拟机镜像所在绝对路径,若需要给虚拟机挂载ISO文件进行操作系统安装,则在箭头处指定ISO文件的绝对路径。

1
2
3
cd /tvm/
virsh create templates.xml
virsh list

通过vnc连接到虚拟机


密码:123456

  • EOF

本文作者:Koen