制作OpenStack CentOS 6.5 & win7镜像

镜像制作方法一:
centos6.5镜像制作:(首先将CentOS-6.5-x86_64-minimal.iso镜像拷贝到/home下面)

1:

 

qemu-img create -f qcow2 /home/ttxImg/ttx_centos6.5.img 2.8G

2:

 

virt-install --connect qemu:///system -n ttx_centos6.5 -r 1024 --vcpus=2 --disk path=/home/ttxImg/ttx_centos6.5.img -c/home/ttxImg/CentOS-6.5-x86_64-minimal.iso --vnc --vncport=5914 --vnclisten=0.0.0.0 --noautoconsole --os-type linux --network=bridge:br100 --hvm --noautoconsole

 

windows7镜像制作:

qemu-img create -f qcow2/home/ttxImg/ttx_win7.qcow2 40000M

 

virt-install --connect qemu:///system -n ttx_win7 -r 2048 --vcpus=2 --disk path=/home/ttxImg/ttx_win7.qcow2,bus=virtio,format=qcow2,cache=writeback --disk path=/home/ttxImg/virtio-win-0.1-81.iso,device=cdrom,perms=ro --force -c /home/ttxImg/win7_x86_64.iso --vnc --vncport=5914 --vnclisten=0.0.0.0 --noautoconsole --os-type windows --os-variant=win7 --network=bridge:virbr0 --hvm --noautoconsole

 

或者:qemu-img create -f qcow2 win2003.qcow 40000M

//usr/libexec/qemu-kvm -m 1024 -cdrom cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso -hda virtio-win-0.1-30.iso -hdb virtio-win-1.1.16.vfd -drive file=win2003.qcow -vnc :23

首先:/usr/libexec/qemu-kvm -m 1024 -cdrom cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso -drive file=win2003.qcow -vnc :23

然后将系统启动,检查是否正常:/usr/libexec/qemu-kvm -m 2048 -drive file=win2003.qcow -vnc :23

将iso已-cdrom参数启动已经安装好的虚拟机:/usr/libexec/qemu-kvm -m 2048 -drive file=win2003.qcow -cdrom virtio-win-0.1-30.iso -vnc :23

 

 

 

/usr/libexec/qemu-kvm -m 2048 -cdrom cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso -drive file=win2003.qcow -hdb virtio-win-0.1-30.iso -hdd virtio-win-1.1.16.vfd -vnc :23

 

/usr/libexec/qemu-kvm -m 2048 -cdrom virtio-win-0.1-81.iso -drive file=win2003.qcow -drive file=kong,if=virtio,format=qcow2,cache=writeback -vnc :23

 

 

/usr/libexec/qemu-kvm -m 2048 -cdrom cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso -drive file=win2003-1.qcow,if=virtio -balloon virtio -fda virtio-win-0.1-30.iso -vnc :10

 

 

/usr/libexec/qemu-kvm -m 2048 -cdrom virtio-win-0.1.102.iso -drive file=win2003.qcow.bak,if=virtio -balloon virtio -net nic,model=virtio -vnc :10

 

 

/usr/libexec/qemu-kvm -m 2048 -cdrom virtio-win-0.1-74.iso -drive file=/home/win2003.qcow.bak,if=virtio -drive file=kongbai.qcow,if=virtio -net nic,model=virtio -usb -usbdevice tablet -vnc :10

 

 

/usr/libexec/qemu-kvm -m 2048 -cdrom virtio-win-0.1-74.iso -drive file=/home/win2003.qcow,if=virtio -net nic,model=virtio -usb -usbdevice tablet -vnc :10

 

 

2003的virtio驱动:virtio-win-1.5.2.vfd

2008和2012的驱动:virtio-win-0.1-74.iso

 

/usr/libexec/qemu-kvm -m 1024 -drive file=disk,index=0,boot=on -fda virtio-win-1.5.2.vfd -boot d -net nic,model=virtio -net user -nographic -vnc :90

 

 

一次性安装:

/usr/libexec/qemu-kvm -m 2048 -boot d -drive file=win2003virtiottx.qcow2,if=virtio -drive file=cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso,media=cdrom -fda virtio-win-0.1.100_x86.vfd -net nic,model=virtio -usb -usbdevice tablet -vnc :10

 

 

 

使用virtio网卡驱动:

virt-install --connect qemu:///system -n ttx_win7 -r 2048 --vcpus=2 --disk path=/home/ttxImg/ttx_win7.qcow2,bus=virtio,format=qcow2,cache=writeback --disk path=/home/ttxImg/virtio-win-0.1-81.iso,device=cdrom,perms=ro --force -c /home/ttxImg/win7_x86_64.iso --vnc --vncport=5914 --vnclisten=0.0.0.0 --noautoconsole --os-type windows --os-variant=win7 --network=bridge:virbr0,model=virtio --hvm --noautoconsole

 
virt-install是libvirt的shell管理工具。假若找不到virt-install,则yum install python-virtinst
 

<interface type='bridge'>

<mac address='52:54:00:ac:9c:4c'/>

<source bridge='br1'/>

<target dev='vnet3'/>

<model type='virtio'/>

<alias name='net3'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>

</interface>

 

windows镜像上传命令:

glance add name="windows" is_public=true container_format=ovf disk_format=qcow2 < windowsxp.img

 

glance image-create --name "win2003" --file /home/win2003.qcow.bak --disk-format qcow2 --container-format bare --progress


centos镜像上传命令:

glance image-create --name centos --is-publictrue --container-format ovf --disk-format qcow2 < /home/agen/centos63.img

 

 

centos镜像上传命令:

glance add name=centos_6.2_ramdisk disk_format=ari container_format=ari is_public=True < initrd-2.6.32-220.el6.x86_64.img

输出:Added new image with ID: 9

以上命令是先上传镜像的ramdisk文件,注意类型必须是ari

 

 

glance add name=centos_6.2_kernel disk_format=aki container_format=aki is_public=True < vmlinuz-2.6.32-220.el6.x86_64

输出:Added new image with ID: 10

以上命令是上传镜像的kernel文件,格式必须是aki

 

glance add name=centos_6.2_final disk_format=ami container_format=ami is_public=True ramdisk_id=9 kernel_id=10 < centos_6.2_final.img

以上命令是上传主要镜像文件,格式必须是ami,ramdisk_id是刚上传的ramdisk的id,kernel_id同理。

 

 

压缩镜像:

virt-sparsify --compress /tmp/centos-6.5.qcow2 centos-6.5-cloud.qcow2

 

 

镜像制作方法二:

1、将iso镜像文件转换为img镜像

qemu-img convert -f raw CentOS_6.2_Final64bit.iso /home/createvm/test.img

 

 

2、创建配置文件setup.xml

 

<domain type='kvm' id='21'>

<name>test_mini_centos</name>

<uuid>7e7f54d0-4b62-7c5e-d385-ed72473a5785</uuid>

<memory>1048576</memory>

<currentMemory>1048576</currentMemory>

<vcpu>1</vcpu>

<os>

<type arch='x86_64' machine='pc-0.14'>hvm</type>

<boot dev='hd'/>

</os>

<features>

<acpi/>

<apic/>

<pae/>

</features>

<clock offset='utc'/>

<on_poweroff>destroy</on_poweroff>

<on_reboot>restart</on_reboot>

<on_crash>restart</on_crash>

<devices>

<emulator>/usr/libexec/qemu-kvm</emulator>

<disk type='file' device='disk'>

<driver name='qemu' type='raw' cache='none'/>

<source file='/var/lib/libvirt/images/test_mini_centos.img'/>

<target dev='vda' bus='virtio'/>

<alias name='virtio-disk0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

</disk>

<disk type='block' device='cdrom'>

<driver name='qemu' type='raw'/>

<target dev='hdc' bus='ide'/>

<readonly/>

<alias name='ide0-1-0'/>

<address type='drive' controller='0' bus='1' unit='0'/>

</disk>

<controller type='ide' index='0'>

<alias name='ide0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

</controller>

<interface type='bridge'>

<mac address='52:54:00:7a:d2:93'/>

<source bridge='br0'/>

<target dev='vnet1'/>

<model type='virtio'/>

<alias name='net0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

<serial type='pty'>

<source path='/dev/pts/0'/>

<target port='0'/>

<alias name='serial0'/>

</serial>

<console type='pty' tty='/dev/pts/0'>

<source path='/dev/pts/0'/>

<target type='serial' port='0'/>

<alias name='serial0'/>

</console>

<input type='tablet' bus='usb'>

<alias name='input0'/>

</input>

<input type='mouse' bus='ps2'/>

<graphics type='vnc' port='5901' autoport='yes'/>

<sound model='ich6'>

<alias name='sound0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

</sound>

<video>

<model type='cirrus' vram='9216' heads='1'/>

<alias name='video0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

</video>

<memballoon model='virtio'>

<alias name='balloon0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

</memballoon>

</devices>

</domain>

 

3、virsh define setup.xml //创建虚拟机 查看当前系统所有的虚拟机信息:virsh list --all

 

4、virsh start vm_name //启动你创建的相应名字的虚拟机

注意:假若出现br0 没有此设备则使用sudo /usr/sbin/brctl addbr br0命令

 

 

 

qemu-img create -f raw /home/ttxImg/centos6.5_openstack_ttx.img 3000M
virt-install -n CentOS6.5-openstack-ttx -r 2048 --cpu host -c /home/ttxImg/CentOS-6.5-i386-minimal.iso --disk path=/home/ttxImg/centos6.5_openstack_ttx.img,device=disk,bus=virtio,size=10,format=qcow2 --vnc --vncport=5908 --vnclisten=0.0.0.0 -v --network bridge=br0

用 vncviewer 登录后按照屏幕提示完成 CentOS 安装。需要注意的是在分区阶段把 10GB 硬盘全部划分成一个 ext4 root 分区,不要创建多个分区也不要创建 swap 区:

$ vncviewer 172.16.39.111:5900

安装完后会自动重启,如果没有重启的话按照下面的命令启动刚刚安装好的虚拟机镜像 centos.img,如果出现 failed to find romfile “pxe-rtf8139.bin” 的错误提示可以通过安装 kvm-pxe 解决:

$ sudo qemu-kvm -m 512 -drive file=centos.img -boot c -net nic -net user -nographic -vnc :10
kvm: pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"

$ sudo apt-get install kvm-pxe

再次用 vnc 登录虚拟机镜像,安装一些必要工具(因为这个镜像将会是模板,所以最好保持最简最小化):

$ vncviewer 172.16.39.111:5900

# yum update
# yum upgrade
# yum install openssh-server
# chkconfig sshd on

修改分区加载表(/etc/fstab),注释或删除以前的,加上 LABEL=cec-rootfs 一行:

# vi /etc/fstab
#UUID=47a90bea-2d88-4c82-a335-09c1533b1538 / ext4 defaults 1 1
LABEL=cec-rootfs                           / ext4 defaults 0 0

在网络接口配置里面注释或删除这行 #HWADDR= 一行,启用 DHCP:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
#HWADDR="00:11:22:12:34:56"
#NM_CONTROLLED="yes"
BOOTPROTO=dhcp
ONBOOT="yes"

注射 ssh key 以便外界可以用 ssh -i mykey.priv root@host 的形式无密码登录到虚拟机实例,在 /etc/rc.local 文件中加入下面这些:

# vi /etc/rc.local
...
mkdir -p /root/.ssh
echo >> /root/.ssh/authorized_keys
curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
| grep 'ssh-rsa' >> /root/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
echo "AUTHORIZED_KEYS:"
echo "--------------------"
cat /root/.ssh/authorized_keys
echo "--------------------"

别忘了还需要修改 sshd 的配置实现无密码登录:

# vi /etc/ssh/sshd_config
...
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin without-password
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

需要关闭 SELINUX,否则即使上面 ssh 设定允许 root 无密码登录也无效:

# vi /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

70-persistent-net.rules 会自动添加其他的网络接口,需要删除这个文件避免自动添加除了 eth0 以外的接口,关闭虚拟机准备发布镜像:

# rm -rf /etc/udev/rules.d/70-persistent-net.rules

# shutdown -h now

上传镜像:

glance image-create --name centos6.5_openstack_ttx --is-publictrue --container-format ovf --disk-format qcow2 < /home/ttxImg/centos6.5_openstack_ttx.img

 

 

后面为其他地方复制,仅供参考:

 

Openstack kvm win7镜像制作

2012-12-13 13:35:17 我来说两句 作者:China_OS

收藏 05211858_wi9q.jpg我要投稿


Openstack不但能管理linux虚拟机还能管理windows虚拟机,之前做过基于kvm的debian6镜像,今天实战一下win镜像的制作,以win7为例。 www.2cto.com
母系统环境:ubuntu12.10 server + kvm
下载virtio驱动,因为win默认不支持virtio驱动,而通过openstack管理虚拟机是需要virtio驱动的。需要两个virtio驱动,一个是硬盘的,一个是网卡的,即:virtio-win-0.1-30.iso和virtio-win-1.1.16.vfd

1
wget http://autosetup1.googlecode.com/files/virtio-win-1.1.16.vfd

2
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-30.iso

下载一个win7的镜像,默认的名字太长了,修改短一点

1
mvcn_windows_7_professional_vl_build_x86_dvd_x15-71025.iso win7.iso

创建一个win7的镜像,raw格式,大小7G
www.2cto.com

1
kvm-img create -f raw win7.img 7G

启动基于win7的kvm虚拟机,映射驱动vfd到软盘A

1
kvm -m 1024 -cdrom win7.iso -drivefile=win7.img,if=virtio,boot=on -fda virtio-win-1.1.16.vfd -boot d -nographic -vnc 10.1.6.228:8

用vnc安装win7,因为默认没有virtio驱动,所以识别不了硬盘,需要手动选择,整个过程如下:
选择键盘 www.2cto.com
05211858_3wL9.jpg
05211858_oUhQ.jpg
05211859_8AxL.jpg
05211859_4dHz.jpg
选择驱动
05211859_J7J6.jpg
05211859_L6Y2.jpg
05211859_EcDy.jpg
05211900_4nMb.jpg
05211900_FZiv.jpg
05211900_7cTG.jpg
坐等安装
www.2cto.com
05211900_JPnH.jpg
05211900_6ctf.jpg
05211901_OPrw.jpg
设置开启远程桌面
05211901_0rkz.jpg
查看网卡驱动类型
05211901_O6Eh.jpg
先关机!!!再次启动虚拟机,使用以下命令:

1
kvm -m 1024 -drivefile=win7.img,if=virtio,boot=on -cdrom virtio-win-0.1-30.iso -net nic,model=virtio -net user -boot c -nographic -vnc 10.1.6.228:8

05211901_tjhs.jpg
修改网卡驱动类型
05211901_Pk1f.jpg
05211902_M1OJ.jpg
05211902_1OyB.jpg
05211902_OBFV.jpg
05211902_I2Hv.jpg
可以看到网卡驱动类型已经更换掉,再次关机!!!
上传win7镜像

1
glance add name="windows7"is_public=truecontainer_format=ovf disk_format=qcow2 < win7.img

05211902_AoZi.jpg

设置安全策略,因为要通过远程桌面连接win7,所以要放开3389端口
05211902_iSyA.jpg
启动一个名为win7的虚拟机,第一次启动比较慢,因为要把win7镜像从镜像服务器传送到计算节点上。
05211902_byjR.jpg
通过dashboard的vnc登录
05211903_4m84.jpg
发现一个杯具的事情,那就是dhcp分配的IP并没有生效,那我们就手动配置一下
05211903_eZLK.jpg05211903_d2CG.jpg
通过本机自带的mstsc登录win7虚拟机:10.1.200.4
05211903_hnHc.jpg
05211903_IpEr.jpg


大功告成!!!

 

 

1)准备一个镜像文件,即ISO文件,本示例所使用的为:

CentOS-6.3-i386-minimal.iso

注:无论您是内部测试环境还是生产环境,偶都强烈推荐使用64位操作系统。

2)引导并安装系统

virt-install -n CentOS63 -r 2048 --cpu host \

-c /data/iso/CentOS-6.3-i386-minimal.iso \--disk path=/data/kvm_data/centos6.3-openstack.img,device=disk,bus=virtio,size=10,format=qcow2 \--vnc --vncport=5908 --vnclisten=0.0.0.0 -v \--network bridge=br0

这些参数的就请您先自行查找手册,后期有时间偶会补上关于KVM的相关实践手册。

3)镜像相关设置(此处根据你的需求进行个性化定制,尽量保持简洁):

分区全部给根分区,防火墙和SELinux禁止 。

chkconfig iptables off

将/etc/selinux/config 中的 SELINUX=enforcing修改成 SELINUX=disabled

修改分区表:

vi /etc/fstab

将UUID=这一行注释,加入:

LABEL=cec-rootfs                           / ext4 defaults<b> 0 0</b>

修改网络配置:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

将HWADDR=这行删除或注释即可,并且设置成BOOTPROTO=dhcp

删除网络规则,因为Centos6之后70-persistent-net.rules这个文件会自动添加除eth0之外的

其他网络接口,

rm -rf /etc/udev/rules.d/70-persistent-net.rules

还要把另外一个文件删除,不然上面这个文件还会自动创建滴:

mv /lib/udev/write_net_rules{,.bak}

4)上传镜像

glance image-create --name centos63Image --is-publictrue --container-format ovf --disk-format qcow2 < /home/agen/centos63.img

至此,所有操作已经完成,如果一切正常,你所创建的实例访问正常。如网络还存在问题,可能

和您的OpenStack网络设置有关,不过这已经超出本文的范畴。假如您对OpenStack的环境搭建

转载于:https://my.oschina.net/tantexian/blog/625966

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值