OpenStack 镜像制作

时间:2024-06-10 17:35:44
Contents [hide]

Centos6.5 img制作

基础环境安装

1
2
yum groupinstall Virtualization "Virtualization Client"
yum install libvirt

下载或从本地上传系统镜像

1
2
3
mkdir /openstack-image
cd /openstack-image
wget http://mirrors.163.com/centos/6/isos/x86_64/CentOS-6.5-x86_64-minimal.iso

启动服务

1
/etc/init.d/libvirtd restart

建立镜像文件

1
2
3
cd /openstack-image
qemu-img create -f qcow2 /openstack-image/openstack-centos6.5.qcow2 10G
chown -R qemu:qemu /openstack-image

通过virt-install创建虚拟机

1
2
3
4
5
virt-install  --name openstack-centos6.5 --ram 1024 \
--cdrom=/images/CentOS-6.5-x86_64-minimal.iso \
--disk /openstack-image/centos-6.5.qcow2,format=qcow2 \
--network network=default --graphics vnc,listen=0.0.0.0 \
--noautoconsole --os-type=linux --os-variant=rhel6

安装操作系统

  • 通过VNC软件来连入进行操作系统安装,ip就是服务器的ip,端口默认第一个为5900以此类推,也可以通过命令:virsh vncdisplay vmname查询端口,推荐使用vncviewer来打开。
  • 以这个方式安装操作系统和正常的安装几乎一样,但是有两点需要注意的:
    1. 分区,分区的时候只给”/” 根目录分一个区即可,其他都不要。
    2. 网络设置方面,确保你的网卡eth0是DHCP状态的,而且请务必勾上”auto connect”的对勾。
  • 系统安装完毕之后,我们刚才使用的vnc-install命令会自动退出。

系统设置

  • 启动虚拟机
1
2
virsh start vmname
virsh list   #查看虚拟机状态
  • 删除网卡配置中HWADDR这一行
  • 删除已生成的网络设备规则
1
rm -rf /etc/udev/rules.d/70-persistent-net.rules
  • 关闭防火墙和selinux
1
2
3
service iptables stop && chkconfig iptables off
service ip6tables stop && chkconfig ip6tables off
sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config
  • 到此Centos6.5镜像已制作完成,可以将虚拟机关机并上传至OpenStack

Win2008 img制作

ISO文件准备

  • 准备一个Windows Server 2008的ISO文件,将现有的ISO文件上传到相应的文件夹。

Virtio总线驱动下载

  • 由于OpenStack只支持Virtio总线的磁盘,所以我们需要在安装之前下载virtio驱动:
1
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/virtio-win-0.1-81.iso

创建虚拟磁盘文件

1
qemu-img create -f qcow2 /home/kvm/images/winserver2008.img 50G

创建虚拟机

  • 使用kvm或virt-install均可,本次安装使用的virt-install
1
2
3
4
5
6
7
virt-install --connect qemu:///system -n winserver2008 --vcpus=2 -r 2048 \
--disk path=/home/kvm/images/winserver2008.img,size=60,format=qcow2,bus=virtio,cache=none \
-c /home/iso/Win_08R2_OEM_CHS_CHT_EN_35in1.iso \
--vnc --vncport=5909 --vnclisten=0.0.0.0  \
--os-type windows --os-variant=win2k8 --accelerate \
--network=bridge:br0,model=virtio  \
--disk path=/home/iso/virtio-win-0.1-81.iso,device=cdrom,perms=ro

主要参数描述

  1. -n 虚拟机的名称
  2. -disk 虚拟磁盘存放的路径,即第一步qemu-img创建的虚拟磁盘。
  3. -c ISO的路径
  4. -vncport VNC连接端口,后面会用到,这里是5909,且必须是未使用的端口。
  5. -network 这个地方偶使用的是一个叫 br0 的网桥,所以你的系统必须保证有br0这个网桥

修正

按照前面创建的镜像可以创建虚拟机,但是创建的虚拟机使用df -h命令将看到实例硬盘永远是10G,没有变化,在openstack中的flavor没有disk体现。 接下来按照上面的步骤做微调。

1. 可以不用按照上面所说的一定是要单一磁盘,划分lvm,在安装过程中默认即可。
2. yum -y install git cloud-utils cloud-init parted
3. cd /tmp
4. git clone https://github.com/flegmatik/linux-rootfs-resize.git
5. cd linux-rootfs-resize
6. ./install
7. 修改配置文件/etc/cloud/cloud.cfg ,在cloud_init_modules 下面增加:- resolv-conf

参考文献

  1. Centos镜像制作
  2. Server2008镜像制作
  3. kvm基本命令
  4. kvm常用操作
  5. 制作openstack镜像,并且磁盘可扩展