Linux鏡像快速定製方法

 

可以實現自動獲得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

c.      https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/3/html/Installation_and_Configuration_Guide/Building_a_Custom_Disk_Image.html

d.      http://docs.openstack.org/zh_CN/image-guide/content/ch_creating_images_automatically.html#oz

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章