製做openstack用的centos6.5鏡像

目的:html

在centos6.5操做系統環境下製做一個centos6.5的kvm鏡像,安裝cloud-init,能本身主動擴展根分區linux


1、製做環境:git

操做環境是在openstack平臺開一個實例。裝的是centos6.5,鏡像來自:http://cloud.centos.org/centos/6.5/images/CentOS-6-x86_64-GenericCloud-20140929_01.qcow2github

centos社區製做的鏡像。不支持本身主動擴展根分區。致使建立實例時不論你指定硬盤大小是多大,它都是7G多點。centos


2、安裝軟件:網絡

yum groupinstall Virtualization "Virtualization Client"
yum install libvirt libguestfs-tools

3、製做過程:

一、下載一個最小的centos6.5的iso文件:

二、建立一個空的鏡像文件:
	qemu-img create -f qcow2 centos-6.5.qcow2 5G
 
  
三、建立命令:
	virt-install  --name centos-6.5 --ram 1024 --cdrom=CentOS-6.5-x86_64-minimal.iso --disk centos-6.5.qcow2,format=qcow2 --grap	hics vnc,listen=0.0.0.0 —noautoconsole --os-type=linux --os-variant=rhel6
 
  四、系統安裝過程: 
 
分區僅僅分一個,掛載到「/」。格式爲ext4。
不要swap,boot等分區
五、初始化鏡像:
(1)安裝完系統後。點擊從新啓動,事實上在virsh 命令下看這個虛擬機。已是關機狀態了,要用命令啓動它
    virsh start centos-6.5
注意:啓動過程很慢,僅僅能等待。不要在啓動時從新啓動它。否則出問題。

(2)經過vnc-viewer鏈接過去,假設你有跑多個虛擬機。可以用如下的命令來查看這個虛擬機的vncport
virsh vncdisplay centos-6.5
(3)要使 nova console-log  能將實例啓動過程輸出到實例啓動日誌中,要在文件 /boot/grub/menu.lst  中kernel參數中添加如下的內容:
    kernel  console=tty0 console=ttyS0,115200n8
(4)改動網絡信息 /etc/sysconfig/network-scripts/ifcfg-eth0 (刪掉mac信息)例如如下:
	TYPE=Ethernet
	DEVICE=eth0
	ONBOOT=yes
	BOOTPROTO=dhcp
	NM_CONTROLLED=no
    添加一行到/etc/sysconfig/network :
	NOZERCONF=yes
(5)添加epel源、更新系統。安裝git:
	yum install -y http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
	yum -y distro-sync
	yum -y install git
(6)安裝ACPI服務,能讓宿主機對虛擬機進行開關機等電源管理操做
	yum install acpid
	chkconfig acpid on
(7)安裝linux rootfs resize。使得實例啓動時可以本身主動擴展根分區
	cd /tmp
	git clone https://github.com/flegmatik/linux-rootfs-resize.git
	cd linux-rootfs-resize
	./install
(8)安裝cloud-init
	yum install -y cloud-utils cloud-init parted
    改動配置文件/etc/cloud/cloud.cfg 。在cloud_init_modules 如下添加:
 	- resolv-conf
(9)關機:	
	poweroff
六、善後操做
(1)清除網絡相關硬件生成信息
	virt-sysprep -d centos-6.5
(2)壓縮鏡像
 virt-sparsify --compress /tmp/centos-6.5.qcow2 centos-6.5-cloud.qcow2
鏡像製做到此結束
...(省略n個參數)...

參考文檔:
相關文章
相關標籤/搜索