在使用openstack的时候,我们通常会自己制作符合自己需求的镜像。这里简单描述一下制作镜像的步骤,主要以centos为主.
Iso文件下载
Centos:
从
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
选择一个镜像下载
Ubuntu:
https://www.ubuntu.com/download/server
镜像创建
在一个普通的linux主机(宿主机)上,安装libvirt、tigervnc、virt-install、qemu-kvm、libguestfs-tools
把下载的iso文件拷贝到该linux主机上
系统安装
|
|
在本机或者有图形界面的机器,通过vnc-client(tigervnc)连接到该机器(宿主机IP:端口号, 在宿主机执行ps -ef|grep cenos7.2 查看其-vnc 后的端口号),进行Minimal Install系统安装,调整时区为Asia/shanghai, 注意:分区选择手动分区,分区格式为标准格式,千万别选择lvm,只需要一个根(/)挂载点,把所有空间分配到该点即可(也可以选择多个挂载点),否则后面无法执行自动分区操作。 启用网络(记录该主机的dhcp的ip),安装完成reboot执行后,
NOTE:
如果忘记创建的虚拟机IP 可在宿主机使用命令查看创建虚机的IP地址(virsh net-dhcp-leases default),在宿主机(因为别的机器无法识别该虚机的ip)上通过ssh root@IP 登陆创建的服务器
后面操作就是在创建的虚机上执行
配置EPEL源
|
|
ACPI服务安装
|
|
Cloud-init安装
需要epel源
分区工具安装
|
|
配置zeroconf
|
|
确保ssh服务启动
如果没有,安装:
关闭防火墙
|
|
关闭NetworkManager
|
|
设置密码
前面安装系统的时候设置的密码过于简单,这里重新设置root密码
额外软件包
|
|
配置 cloud-init
|
|
配置console
|
|
修改 GRUB_CMDLINE_LINUX 选项:
删除 rhgb quiet ,然后添加:console=tty0 console=ttyS0,115200n8
...GRUB_CMDLINE_LINUX="…crashkernel=auto console=tty0 console=ttyS0,115200n8"
然后保存配置:
关机:
清理网卡信息
在linux主机(宿主机)上执行:
删除定义
|
|
至此,该镜像可以上传到openstack使用了(glance image-create –disk-format raw –visibility public –container-format bare –name CentOS7.2-1511-base-v1.0 –file CentOS7.2-1511-20180912.img –progress)。