可以实现自动获得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