1.   环境准备

Ø  ISO准备

根据需要制作的Openstack镜像,下载所需的ISO文件。此处以安装制作CentOS7.2为例。

已准备好iso文件:CentOS-7-x86_64-Minimal-1511.iso


Ø  宿主机准备

²  查看宿主机的cpu是否支持KVM

grep -E -o '(vmx|svm)' --color=auto /proc/cpuinfo

vmx表示CPU支持Intel VT 技术,svm代表CPU支持AMD-v技术

²  安装libvirt虚拟化管理工具

# yum -y install virt-manager virt-viewer libvirt libvirt-python python-virtinst virt-install
# service libvirtd start   
# chkconfig libvirtd on

 

宿主机(建议直接使用已安装部署Openstack计算节点的物理机,例子以172.16.70.1为例)环境安装centos7.2操作系统,已经安装virt-install、kvm、qemu-img等工具;上传CentOS-7-x86_64-Minimal-1511.iso至目录/usr/local/src

2.   镜像制作

Ø  创建虚拟机磁盘镜像

在宿主机上执行命令创建虚拟机磁盘文件

# qemu-img create -f qcow2 /tmp/CentOS-7.20-x86_64.qcow2 40G

 

Ø  从ISO启动虚拟机

virt-install --virt-type kvm --name CentOS-7.20-x86_64 \
--ram 2048 --disk /tmp/CentOS-7.20-x86_64.qcow2,format=qcow2 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel7 \
--network bridge=br71 \
--cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1511.iso

例子宿主机***.**.**.**已有网桥bridge br71。如果不使用网桥,标红处可用如下行替换

--network network=default \

 

Ø  虚拟机操作系统安装

使用tightVNC客户端工具连接虚拟机。连接完成后正常情况下将可以打开虚拟机的安装界面,按照正常的操作系统安装方法完成虚拟机操作系统的安装。安装过程省略,注意在进行磁盘分区的时候可以使用默认的LVM,也可以自定义分区结构。针对虚拟机的建议是只分配一个根分区/,不创建其它分配和swap分区。安装成功后,点击reboot,注意并不会重启,需要我们手动启动:

openstack注册ISO镜像命令 openstack iso镜像装vm_数据结构与算法

启动完毕后,我们再连接到虚拟机上。

使用tightVNC客户端连接虚拟机,IP地址为虚拟机所在宿主机的外网地址,端口为虚拟机监听的端口,端口号可使用如下命令查询:

# netstat -anoplt|grep -i `ps -ef|grep -v grep|grep CentOS-7.20-x86_64|awk '{print $2}'`

openstack注册ISO镜像命令 openstack iso镜像装vm_数据结构与算法_02

openstack注册ISO镜像命令 openstack iso镜像装vm_openstack注册ISO镜像命令_03

连接后即可进入虚拟机

openstack注册ISO镜像命令 openstack iso镜像装vm_操作系统_04

配置虚拟机网络,使虚拟机能够接入具体的yum源。

 

 

Ø  安装 ACPI 服务

启动后,你可能需要手动配置你的虚拟机的网络。为了让虚拟化层能重启和关闭虚拟机,必须在虚拟机内安装并运行 acpid 服务。

在 CentOS虚拟机内运行以下命令安装 ACPI 服务并配置为系统启动时自动启动。

# yum install acpid
# systemctl enable acpid

 

Ø  清除MAC地址相关信息

操作系统会在/etc/sysconfig/network-scripts/ifcfg-eth0 和

/etc/udev/rules.d/70-persistent-net.rules 这类文件记录下网卡MAC地址,但是,虚拟机的网卡MAC地址在每次虚拟机创建的时候都会不同,因此这些信息必须从配置文件删除掉。


Ø  其它标准化操作

可以把所有虚拟机都需要进行的设置在镜像这一级全部设置完毕。例如:比如关闭SElinux、firewalld、postfix。以及设置内网DNS,安装相关的Agent等。

 

Ø  收尾工作

关闭虚拟机。如果以后不在需要该虚拟机也可以直接删除。建议是保留,方便后期进行虚拟机镜像的定制。

 

Ø  建议安装工具

gcc tcpdump lsof parted snmpwalk perl wget createrepo perl-ExtUtils-MakeMaker setuptool bzip2 gzip unzip zip net-snmp python-setuptools python-devel

 



3.   上传镜像至Openstack Glance服务

Ø  上传镜像

镜像拷贝至Openstack的控制节点,执行如下命令:

glance image-create --name "CentOS-7.2-x86_64" --disk-format qcow2 --min-disk 40 --container-format bare --file /tmp/CentOS-7-x86_64.qcow2 --progress

 



参考

【1】OpenStack制作Windows 2008 KVM镜像 https://www.unixhot.com/article/70

【2】制作适用于openstack的Windows server 2008镜像