镜像可以是RHEL或者是CentOS,这里使用CentOS作为示例。
准备 centos-base,updates,epel,openstack 这四个源 确保镜像中有centos-base,updates,epel,openstack 这四个源
- 这里使用CentOS7-1611的镜像。
- 删除镜像中所有的yum repo 文件,放入我们准备好的yum repo
#删除yum repo
$virt-customize -a CentOS-7-x86_64-GenericCloud-1611.qcow2 --run-command 'rm -f /etc/yum.repos.d/*'
#上传自定义的yum repo
$virt-customize -a CentOS-7-x86_64-GenericCloud-1611.qcow2 --upload uos-4.0-production.repo:/etc/yum.repos.d/
镜像制作需要切换到root用户。并且Base镜像不能放在/root 目录中,也不要在/root 目录中进行镜像制作,避免权限问题。这里使用/tmp
目录来制作镜像
#切换到root 用户
$sudo su
#将base镜像拷贝到镜像制作目录
$mkdir /tmp/overcloud_image
$cp <base image path>.qcow2 /tmp/overcloud_image
$cd /tmp/overcloud_image
#通过设置DIB的环境变量来设置base image的路径
export DIB_LOCAL_IMAGE=/tmp/overcloud_image/CentOS-7-x86_64-GenericCloud-1611.qcow2
#制作Overcloud image
openstack overcloud image build --all