openstack 构建自己的云主机镜像
系统平台:ubuntu18.04
openstack:红帽官方v10
构建镜像CentOS7.2
- 创建一个镜像文件默认qcow2格式大小10G。
qemu-img create -f qcow2 centos7.2.qcow2 10G
- 创建域并启动虚拟机。
virt-install --virt-type kvm --name centos7.2_base --ram 2048 --disk centos7.2.qcow2,format=qcow2 --network network=vbr --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --cdrom=/doc/CentOS7-1804.iso
- 使用vnc client 或 virt-manager或 virt-viewer 进行链接,我图方便就使用了virt-viewer。
virt-viewer centos7.2_base
- 和传统的一样选择安装centos7,语言最好是英语因为中文有时候确实会坏事,时区选择中国上海,选择最小化安装,分区需要手动配置不需要swap交换分区,文件系统选择ext4或者xfs ,xfs的话存储大文件性能相较于ext4要更好一点,存储驱动默认即为Virtio Block Device。
- 网络开启DHCP自动获取。
-
操作完毕后就可以开始安装系统了,在配置页面设置一个临时密码,安装完成后直接重启系统即可。
-
安装acpid并设置开机启动,acpid用来处理电源相关事件,对于云主机来说这样关机和重启以及强制重启更加安全。
yum install -y acpid && systemctl enable acpid
- 安装cloud-init
yum install -y cloud-init && systemctl enable cloud-init
- 安装growpart 用来自动拓展根磁盘大小。
yum install -y cloud-utils-growpart.noarch
rpm -qa kernel | sed 's/^kernel-//' | xargs -I {} dracut -f /boot/initramfs-{}.img {}
- 完成所有工作后清除history历史命令,进行关机
shutdown -h now
- 清空虚拟机所有信息 需要安装libguestfs-tools
virt-sysprep -d centos7.2_base
- 删除虚拟机
virsh undefine centos7.2_base
- 上传镜像即可,我先scp到openstack的虚拟机中使用glance进行上传。
source keystonerc_admin
glance image-create --file /centos7.4.qcow2 --disk-format qcow2 --container-format bare --name CentOS7.4 --progress
- 登录到面板中就可以看到制作的镜像了。