openstack文件冷注入流程

    openstack中虚机经常需要将用户的数据包括文件,密码,key等注入到虚机内,为此nova提供单独的_inject_datat接口,之所以称为冷注入是因为只在虚机关机状态下注入,nova向外提供的接口只支持创建虚机时将指定数据注入到虚机内部,本文对其流程做介绍。执行命令行:

nova help boot 

    会有下面帮助信息:

--file <dst-path=src-path> Store arbitrary files from <src-path> locally to <dst-path> on the new server. Limited by the injected_files quota value.

    将host上的文件注入到虚机中的目的地址,示例如下:

--file /home/config_drive.ymal=config_drive.ymal

    将当前路径下的config_drive.ymal注入到虚机中的/home路径下,文件名不变。
    代码实现流程:

openstack文件冷注入流程_第1张图片

    如图所示,在spawn阶段,调用create_image 创建镜像,然后判断是否需要注入文件,判断依据是inject_info不为空并且nova.conf中设置了inject_partition不等于-2,该值为-2时表示禁止文件注入,需设置为-1.    然后调用_inject_data进行冷注入,此时磁盘镜像已经创建完成,虚机尚未启动,直接注入即可。调用的是virt/disk/中的api,通过libguestfs工具实现,将镜像文件mount后将用户数据注入进去。针对inject_info中的不同信息,最后调用不同的方法来注入生效,后面会继续介绍cloud-init方式的文件注入。———-小笨驴在吃草的时候创建了微信公众号,为方便更多觅食的“小笨驴”,为大家准备了大量的免费基础教学资料以及技术解决方案,还会定时发布一些好的技术文章,当然也会扯扯蛋、谈谈人生、呵呵,希望我们这群乐于分享技术的“小笨驴”团队越来越大!

这里写图片描述

你可能感兴趣的:(openstack)