Openstack镜像制作之CentOS7篇

1.    准备好一台装有centos7桌面版系统的物理机,进入后

yum update

(安装过程交互的三种方式:这里我们使用桌面系统上的界面操作,更方便简单,推荐;纯敲命令,使用vnc登陆安装的方式较为麻烦,不推荐;纯敲命令,不使用界面交互的方式理论上可行,较麻烦,不推荐)

2.    安装libvirt各项组件

yum install kvm libvirt libvirt-pythonvirt-install virt-manager virt-viewer libguestfs-tools qemu bridge-utils qemu-kvm virt-top

其中kvm和qemu相关的软件系统自带,这里是以防万一;virt-manager安装后会在系统工具中看到虚拟机管理程序,可以界面操作;virt-install是启动虚拟机命令;其他相关组件具体作用不做交代,请自行查询。

3.    创建qcow2磁盘:

qemu-img create -f qcow2 centos7.qcow2 20G

4.    启动虚拟机:(用虚拟机管理程序创建qcow2磁盘、导入iso文件安装更简单,不必考虑下列各项参数具体含义)

virt-install --name centos --ram 1024--disk /tmp/centos.qcow2,format=qcow2 --network network=default --graphicsvnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7  --location=/data/isos/CentOS-7-x86_64-NetInstall-1511.iso

disk:指定虚拟磁盘路径

network:网络连接方式,默认使用NAT;使用bridge方式参数:--network bridge:br0,使用网桥方式需要先在物理机上创建网桥br0

graphices: 界面交互方式;这里创建了一个vnc连接,使用vnc方式;我们实际使用的是virt-manager界面;如果想纯敲命令不进行界面交互,参数为--graphics

none,并添加--extra-args="console=tty0 console=ttyS0,115200",再使用virsh console centos7登陆

location:指定iso文件路径

(我们制作完镜像后,使用时会修改硬件资源的参数,所以启动虚拟机时可以指定任意参数,如这里ram是1024M,vcpu没有指定,网络使用NAT,修改为其他参数也可以)

5.    对镜像进行配置修改:

a.     允许ssh root登陆:

b.    安装acpid

为了hypervisor能够管理虚拟机生命周期(shutdown、reboot等),虚拟机需要安装acpid服务:

yum install -y acpid

systemctl enable acpid

c.     记录虚拟机的启动日志供nova console-log使用

编辑/etc/default/grub文件

修改GRUB_CMDLINE_LINUX 行,删除 rhgb quiet

添加the console=tty0 console=ttyS0,115200n8

运行grub2-mkconfig -o /boot/grub2/grub.cfg保存修改

d.    yum update

e.     安装qemu-guest-agent:用于从面板在线更新密码/密钥

yum install -y qemu-guest-agent

配置qemu-ga,修改/etc/sysconfig/qemu-ga


TRANSPORT_METHOD="virtio-serial"

DEVPATH="/dev/virtio-ports/org.qemu.guest_agent.0"

LOGFILE="/var/log/qemu-ga/qemu-ga.log"              

PIDFILE="/var/run/qemu-ga.pid"

BLACKLIST_RPC=""

FSFREEZE_HOOK_ENABLE=0


f.     禁用zeroconf route:

echo "NOZEROCONF=yes" >>/etc/sysconfig/network

g.    安装cloud-init:实现密码注入功能

yum install epel-release.noarch

yum install cloud-init

h.    安装growpart:在创建虚拟机时能够自动识别根分区大小并自动调整

yum install -y epel-release

yum install -ycloud-utils-growpart

rpm -qa kernel |sed 's/^kernel-//'  | xargs -I {} dracut -f/boot/initramfs-{}.img {}

i.      关机

shuedown now

j.      删除硬件信息:

virt-sysprep -d centos7

k.     删除虚拟机配置文件:

virsh undefine centos7

(至此镜像制作完成)

6.    使用镜像:

     1)在openstack平台上,导入镜像文件验证密码注入、磁盘根分区大小修改等功能是否正常;

glance image-create --progress --container-format bare --disk-format raw --fileimg.raw --name img --property hw_qemu_guest_agent=yes --propertyos_admin_user=root --property os_type="linux"

你可能感兴趣的:(Openstack镜像制作之CentOS7篇)