2017-7-8 OpenStack手工+oz自動制作CentOS 7.3鏡像


 

 

 

1、安裝kvm基礎軟件包
[root@kvm ~]# modprobe kvm
[root@kvm ~]# egrep "(vmx|svm)" /proc/cpuinfo ##保證服務器或VMWARE支持硬件虛擬化!
[root@kvm ~]# yum install qemu-kvm qemu-img –y
[root@kvm ~]# ln -s /usr/libexec/qemu-kvm /usr/lib/qemu-kvm //如果不做這步,無法直接使用其命令
在windows客戶端安裝vnc viewer軟件,避免安裝圖形化Linux服務器會更好點。http://www.33lc.com/soft/40006.html
///////////////////////////
[root@kvm ~]# yum install tigervnc vnc* -y //如果上一步做了,接下來的3步都不需要做,這步驟耗時太多
[root@kvm ~]# yum install xorg* gnome* glx* -y //非常耗時,但是它的確能從字符界面轉換為圖形界面
[root@kvm ~]# reboot
[root@kvm ~]# startx
///////////////////////////

2、制作鏡像,安裝系統
[root@kvm ~]# df -Th ##確保自己有足夠的磁盤空間,否則可能徒勞無功
[root@kvm ~]# mkdir openstack_image && cd openstack_image
下載centos7鏡像,改名為centos7.iso
[root@kvm ~]# wget http://mirrors.aliyun.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
[root@kvm ~]# qemu-img create -f qcow2 centos7.qcow2 15G
[root@kvm ~]# /usr/libexec/qemu-kvm -m 1024 -cdrom centos7.iso -drive file=centos7.qcow2 -boot menu=on --nographic -vnc :3

PC的vncviewer客戶端填入【10.20.0.201:3】,此IP地址是KVM機器的IP,而不是新創建的虛擬機的IP
【注意】:安裝centos 7系統:不需要swap分區,也不需要boot分區,全部磁盤空間分配給根分區,采用XFS格式,而不用LVM

3、后續配置。
參考文檔:http://blog.csdn.net/xiegh2014/article/details/53248403
[root@kvm ~]# yum install virt-install -y //使用virsh命令管理虛擬機非常方便
[root@kvm ~]# virsh list
(1)安裝ACPI服務,能讓宿主機對虛擬機進行開關機等電源管理操作
[root@kvm ~]# yum install acpid
(2)安裝linux rootfs resize,使得實例啟動時可以自動擴展根分區
[root@kvm ~]# yum install git parted cloud-utils -y
[root@kvm ~]# git clone https://github.com/flegmatik/linux-rootfs-resize.git
[root@kvm ~]# cd linux-rootfs-resize
[root@kvm ~]# ./install
(3)安裝cloud-init,給虛擬機注入密鑰登錄、主機名、用戶名
[root@kvm ~]# yum install cloud-init -y
[root@kvm ~]# vim /etc/cloud/cloud.cfg
在cloud_init_modules 下面增加:
- resolv-conf
(4)再次運行系統,觀察現象
[root@kvm ~]# /usr/libexec/qemu-kvm -m 1024 -cdrom centos7.iso -drive file=centos7.qcow2 -boot menu=on --nographic -vnc :3

4、上傳鏡像到控制節點的glance組件中
[root@kvm ~]# source admin-openrc.sh
[root@kvm ~]# openstack image create "centos7" --file centos7.qcow2 --disk-format qcow2 --container-format bare --public
[root@kvm ~]# openstack image list

+++++++++++++++++++++++
報錯:
1、qemu連上后,進入引導菜單后無反應。
未解決:猜測我使用VMWARE性能太差,最好使用一台任意物理機器,生成好centos7.qcow2,再rsync到控制節點上。
+++++++++++++++++++++++++

 

 


                 =========================oz自動制作Linux操作系統鏡像======================

自動制作鏡像,速度非常慢,如上文所述,centos 7的iso鏡像已經被下載到/root/openstack_image/
1、軟件包安裝
[root@kvm ~]# yum install epel-release -y
[root@kvm ~]# yum install oz libguestfs-tools -y
安裝完后應該多出一個虛擬的網絡接口virbr0
[root@kvm ~]# ip a
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 52:54:00:58:d1:22 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
link/ether 52:54:00:58:d1:22 brd ff:ff:ff:ff:ff:ff

[root@kvm ~]# vim /etc/oz/oz.cfg ##oz默認支持raw格式,指明為qcow2
#image_type = raw
image_type = qcow2

[root@kvm ~]# cd openstack_image
[root@kvm ~]# vim centos7-3.tdl
<template>
<name>centos_73_x86_64</name>
<description>CentOS 7.3 x86_64 template</description>
<os>
<name>CentOS-7</name>
<version>7</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>file:///root/openstack_image/centos7.iso</iso>
</install>
</os>
<commands>
<command name='console'>
sed -i 's/ rhgb//g' /boot/grub/grub.conf ##centos7默認沒有/boot/grub/grub.conf
sed -i 's/ quiet//g' /boot/grub/grub.conf
sed -i 's/ console=tty0 / serial=tty0 console=ttyS0,115200n8 /g' /boot/grub/grub.conf
</command>
</commands>
<disk>
<size>10</size>
</disk>
</template>

2、編輯ks文件,類似於PXE
[root@kvm ~]# vim centos7-3.ks
install
text
key --skip
keyboard us
lang en_US.UTF-8
skipx
network --device eth0 --bootproto dhcp
rootpw openstack
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --append="console=tty0 console=ttyS0,115200"
zerombr yes
clearpart --all
part / --fstype xfs --size=10240 --grow
%post
reboot

%packages --nobase --excludedocs
wget
vim
cloud-init
cloud-utils
dracut-modules-growroot
%end
-----------------------------------------

3、制作鏡像
[root@kvm openstack_image]# pwd
/root/openstack_image
[root@kvm openstack_image] systemctl start libvirtd
[root@kvm openstack_image]# oz-install -p -u -d3 -a centos7-3.ks centos7-3.tdl
+++++++++++++++++++++++++++
報錯:
1、[root@kvm openstack_image]# oz-install -p -u -d3 -a centos7-3.ks centos7-3.tdl
lxml.etree.XMLSyntaxError: AttValue: " or ' expected, line 9, column 20
解決:報出語法錯誤,XML文件,是type后面的iso要加單引號才行,之前沒加

2、[root@kvm openstack_image]# oz-install -p -u -d3 -a centos7-3.ks centos7-3.tdl
oz.OzException.OzException: No disk activity in 300 seconds, failing.
未解決:查閱資料發現,這是個普遍錯誤,停留在選擇網卡的選項上,於是我刪掉ks文件的--device eth0,結果依舊不行。

+++++++++++++++++++++++++++++++
鏡像創建完后,會保存在 /var/lib/libvirt/images,壓縮鏡像,比例為4:1。
[root@kvm ]# qemu-img convert -c /var/lib/libvirt/images/centos_73_x86_64.qcow2 -O qcow2 /root/openstack_image/centos7-3.qcow2
[root@kvm ]# qemu-img info centos7-3.qcow2

4、上傳鏡像到控制節點的glance組件中
[root@kvm ~]# source admin-openrc.sh
[root@kvm ~]# openstack image create "centos7" --file /root/openstack_image/centos7-3.qcow2 --disk-format qcow2 --container-format bare --public
[root@kvm ~]# openstack image list

拓展:linux與linux之間互傳大文件,均要安裝rsync,yum install rsync
[root@kvm openstack_image]# rsync -avz --progress /root/openstack_image/centos7.iso root@10.20.0.3:/root/test

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM