设置glance镜像其它属性:
glance image-update --name="CentOS-7.2-64bit" \
--disk-format=raw --container-format=bare
2.3 添加qemu-guest-agent属性
OpenStack Nova是通过判断镜像元数据hw_qemu_guest_agent是否为yes决定是否支持qemu-guest-agent,代码如下:
# nova/virt/libvirt/driver.py
def _add_qga_device(self, guest, instance):
qga = vconfig.LibvirtConfigGuestChannel()
qga.type = "unix"
qga.target_name = "org.qemu.guest_agent.0"
qga.source_path = ("/var/lib/libvirt/qemu/%s.%s.sock" %
("org.qemu.guest_agent.0", instance.name))
guest.add_device(qga)
def _set_qemu_guest_agent(self, guest, flavor, instance, image_meta):
# Enable qga only if the 'hw_qemu_guest_agent' is equal to yes
if image_meta.properties.get('hw_qemu_guest_agent', False):
LOG.debug("Qemu guest agent is enabled through image "
"metadata", instance=instance)
self._add_qga_device(guest, instance)
...

由此可知,我们必须添加镜像property hw_qemu_guest_agent=yes,否则libvert启动虚拟机时不会创建qemu-guest-agent设备,虚拟机的qemu-guest-agent由于找不到对应的串行设备而导致修改密码失败。
glance image-update --property hw_qemu_guest_agent=yes $IMAGE_ID
前面介绍了手动制作镜像的过程,从镜像下载到启动虚拟机安装操作系统,然后在虚拟机中完成配置,最后清除本地信息,整个过程非常繁杂、耗时,并且一旦制作镜像的镜像有点问题,就需要启动虚拟机重新再来一遍,重复工作多,效率非常低。
假设制作镜像时某个配置项错了,能不能不通过启动虚拟机进入系统去更改呢?答案是肯定的!我们只需要把制作好的镜像通过loop设备挂载到本地(如果是qcow2格式,则需要通过nbd挂载),然后chroot到挂载目录中修改配置文件即可,相对于启动虚拟机进入系统去更改方便高效很多。
由此我们自然想到,我们可以把最初启动虚拟机时安装操作系统完成后的镜像保存为base镜像,以后再做镜像时,只需要基于该base镜像调整即可,省去了下载镜像以及安装操作系统这两大耗时步骤。修改镜像也不再需要启动虚拟机,只需要根据前面介绍的方法,把镜像挂载到本地,然后chroot到根分区修改即可。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-70970-5.html
我是卖假货起家的
我不相信密封包装会长出蛆虫
随着排水量达12000吨的055型驱逐舰的建造服役
耗电量也不那么吓人惹