可以實現自動獲得ssh-key和硬盤自動擴容(需要重啓)
1. 環境準備
Centos6.x/7.x操作系統
6.x
yum –y install http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
7.x
yum –y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum –y install oz kvm libguestfs-tools libvirt
service libvirtd start
ifconfig 能看到virbr0存在
2. 配置三個文件oz.cfg centos65.tdl RHEL6.auto
1)vi /etc/oz/oz.cfg
將其中的Image_type修改爲qcow2,如下所示:
[paths]
output_dir= /var/lib/libvirt/images
data_dir= /var/lib/oz
screenshot_dir= /var/lib/oz/screenshots
#sshprivkey = /etc/oz/id_rsa-icicle-gen
[libvirt]
uri =qemu:///system
#image_type= raw
image_type= qcow2
# type =kvm
#bridge_name = virbr0
# cpus =1
# memory= 1024
[cache]
original_media= yes
modified_media= no
jeos = no
[icicle]
safe_generation= no
2) vi/centos65.tdl
<template>
<name>centos65</name>
<os>
<name>CentOS-6</name>
<version>5</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>file:///home/CentOS-6.5-x86_64-bin-DVD1.iso</iso>
</install>
<rootpw>abc123</rootpw>
</os>
<description>CentOS6.5 x86_64</description>
<repositories>
<repositoryname='epel-6'>
<url>http://download.fedoraproject.org/pub/epel/6/$basearch</url>
<signed>no</signed>
</repository>
</repositories>
<packages>
<packagename='epel-release'/>
<packagename='cloud-init'/>
<packagename='cloud-utils'/>
</packages>
<commands>
<commandname='update'>
yum -y update
yum clean all
sed -i '/^HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0
echo -n > /etc/udev/rules.d/70-persistent-net.rules
echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules
</command>
</commands>
</template>
以上黃色部分是需要進行修改的部分
3)vi RHEL6.auto //這個實際就是一個ks文件
install
text
key --skip
keyboard us
lang en_US.UTF-8
skipx
network --deviceeth0 --bootproto dhcp
rootpw 'abc123'
firewall--disabled
authconfig--enableshadow --enablemd5
selinux--enforcing
timezone --utcAmerica/New_York
bootloader--location=mbr --append="console=tty0 console=ttyS0,115200"
zerombr yes
clearpart --all
part / --fstypeext4 --size=1024 --grow
reboot
%packages
@core
@base
%post
3. 製作鏡像文件
oz-install -u centos65.tdl -d3 -a RHEL6.auto
等10分鐘就製作完成了,生成的鏡像文件在/var/lib/libvirt/images/下
virt-sysprep –add /var/lib/libvirt/images/centos65.qcow2
4. 上傳鏡像到openstack
5. 用上述方法制作的鏡像可以實現以下功能
1) 自動獲得ssh-key
ssh centos@$ip
2) 自動擴容
默認生成的鏡像爲10G,若分配40G硬盤,在vm啓動後再次重啓就可以自動擴容爲40G
以後每次變動硬盤大小,只要重啓會自動擴容
附:更改flavor命令
nova resize vm-id 4 //這裏的數字代表flavorID
上述命令即可將VM的硬盤擴容爲flavor4代表的硬盤、內存和CPU
執行上述命令後需要在dashboard中點擊確認
然後重啓VM即可直接實現擴容
6. 參考文檔
a. https://github.com/lorin/image-guide
b. http://blog.csdn.net/silenceli/article/details/39990445
d. http://docs.openstack.org/zh_CN/image-guide/content/ch_creating_images_automatically.html#oz