注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

KVM制作虚拟机镜像  

2017-03-02 14:02:59|  分类: linux服务篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
第一步,安装DVDiso镜像虚拟机
  1. mkdir -p/data0/images_base/centos-6.8.x86_64/
  2. virt-install --name=centos6.8 --arch=x86_64 --vcpus=2 --ram=2048 \
--disk path=/data0/images_base/centos-6.8.x86_64/centos-6.8.x86_64.img,size=12,device=disk,bus=virtio,format=raw \
--location=/data0/iso/CentOS-6.8-x86_64-bin-DVD1.iso --vnclisten=0.0.0.0 \
--vncport=5931 --vnc --os-type=linux \
--network bridge=br1,model=virtio --network bridge=br1,model=virtio
  1. 使用vncviewer 连接已经安装的虚拟机,逐步完成安装,主要需要修改的点有:分区只分根分区,时区,root密码设置

第二步,将虚拟机镜像分区提取出来
在第一步安装后生成的文件为基础文件,还不能直接为kvm virt使用(为什么?1. 生成的分区无法直接挂载,2.无法动态的更改相关配置,如硬盘、cpu、内存等), 所以要将第一步生成的文件进一步进行操作,将分区中内核镜像取出来,并将分区转换为可直接挂载的分区

  1. losetup /dev/loop0 centos-6.8.x86_64.img,转换完成后还看不到,需要:
  2. kpartx -a /dev/loop0  此时可以看到/dev/mapper/loop0p1分区
  3. mount /dev/mapper/loop0p1 /mnt/
  4. 创建未来给puppet使用的镜像文件夹,将第一步安装备份。 mv =/data0/images_base/centos-6.8.x86_64 =/data0/images_base/centos-6.8.x86_64_bak; mkdir /data0/images_base/centos6.8.x86_64
  5. cp /mnt/boot/vmlinuz-version.el7.x86_64 /data0/images_base/centos6.8.x86_64/kernel
  6. cp /mnt/boot/initramfs-3.10.0-514.el7.x86_64.img /data0/images_base/centos6.8.x86_64/ramdisk
  7. dd if=/dev/mapper/loop0p1 of=/data0/images_base/centos6.8.x86_64/centos-6.8.x86_64.img

第三步,测试虚拟机镜像
  1.  在 /data0/instance/instance-xxx, xxx为ip的第四位(使用前要确保这个ip与已经有的ip不冲突)本例使用188,mkdir -p /data0/instance/instance-188 ;cd /data0/instace/instace-188/
  2. 拷贝一个现有的instance-xxx.xml文件,将文件名和文件内存涉及到name,ip和内核版本都修改为正确的。cp /data0/instance/instace-xxx.xml /data0/instance/instance-188.xml
  3. 将第二创建的镜像cp过来。 
    cp 
    /data0/images_base/centos6.8.x86_64/ramdisk /data0/instance/instance-188/
    cp  
    /data0/images_base/centos6.8.x86_64/kernel /data0/instance/instance-188/ cp /data0/images_base/centos6.8.x86_64/centos-6.8.x86_64.img /data0/instance/instance-188/
  4. 在puppet node.tbl为你添加的镜像添加sae角色并提交
  5. touch console.log, qemu-img create disk.local +1G && mkfs.ext4 -q -F disk.local, 运行virsh create instance-188.xml, 再运行psync
  6. 通过vnc登录你当前的镜像,并使用初始化新增机器的方法对这个镜像进行初始化。可能涉及路由、yum库和EPEL gpg认证问题,可以从大版本相同的的服务器上拷过来

第四步,对镜像进行清理
  1. 删除 /etc/udev/rules.d/中包含网卡的文件,rm -f 70-xxxx
  2. 打开/etc/ssh/sshd_config,将 Listen的ip必为 0.0.0.0
  3. 打开/etc/sysconfig/iptables 将规则都删除
  4. 在/etc/sysconfig/networks中,添加如下内容:
    NETWORKING=yes
    NETWORKING_IPV6=no
    HOSTNAME=188
  5. 确保/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:
    DEVICE=eth0
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
  6. ifcfg-eth1的内容如下:
    DEVICE=eth1
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.1.188
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    红色部分不用管,只要是你启动镜像用的ip就可以,真正安装时puppet会覆盖
  7. 对于centos7要禁掉NetworkManager; systemctl disable NetworkManager.service,并启动network systemctl enable network.service && systemctl restart network.service
  8. 将镜像关掉,并将镜像文件拷到/data0/image_base中
  9. mount -o loop /data0/image_base/centos-6.8.x86_64.img /mnt/, 进入/mnt/再次确认防火墙,ssh,网卡配置是否正确
  评论这张
 
阅读(21)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017