一和二尚未整理好,先发三。目前操作为主、后期完善
系统版本:CentOS7.6
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
准备环境
yum install git epel-release -y
yum install python-pip -y
pip install --upgrade pip
yum install qemu-img -y
yum install squashfs-tools -y
yum install xfsprogs -y
yum install libguestfs-tools -y
systemctl start libvirtd
systemctl enable libvirtd
安装diskimage-builder
gitclone https://github.com/openstack/diskimage-builder.git
cd diskimage-builder
pip install -r requirement.txt
python setup.py install
制作Centos7镜像
export DIB_CLOUD_INIT_DATASOURCES="ConfigDrive, OpenStack"
disk-image-create -o centos7.raw -t raw centos7 vm cloud-init cloud-init-datasources grub2 baremetal dhcp-all-interfaces disable-selinux
参数说明:
-a | 指定i386 amd64等架构类型,默认为amd64 |
-o | 指定输出的镜像名称,默认为镜像的名称 |
-t | qcow2,tar,vhd,docker,aci,raw 指定输出的镜像文件类型,默认为qcow2 |
–checksum | 为创建的镜像文件产生MD5和SHA256校验和文件 |
centos7 | 指定基础镜像为centos7 |
cloud-init | 安装cloud-init,若已安装则升级至最新版 |
cloud-init-datasources | 指定cloud-init所读取的数据源,对应“DIB_CLOUD_INIT_DATASOURCES”的值 |
grub2 | 镜像会安装grub2 bootloader,该选项是ironic工作本地引导必须的 |
baremental | 抽取kernel和initial ramdisk来建立镜像 |
dhcp-all-interfaces | 在引导和配置DHCP期间,自动侦测网络接口 |
disable-selinux | 配置selinux状态为 disabled |
配置ROOT用户密码
export LIBGUESTFS_BACKEND=direct
virt-sysprep --root-password password:[密码] -a [镜像文件]
参考文档:https://docs.openstack.org/diskimage-builder/latest/