OpenStack镜像如何使用Config Drive实现元数据注入

OpenStack中如果要使用Config Drive实现元数据的注入,在制作image时一定要安装cloud-init软件,否则无法实现元数据注入。

如何使用Config Drive在这里有介绍: http://blog.sina.com.cn/s/blog_959491260101m2cx.html


1、config drive的一个应用就是:如果不使用DHCP向instances分配ip时,通过config drive可以传递网络配置(如ip、network、gateway)等。
 
2、config drive 可以用于任何操作系统。 

3、要使用config drive,genisoimage必须在每个compute节点上被安装。 
ubuntu系统默认没有安装genisoimage: 

有一个bug描述:https://bugs.launchpad.net/cloud-archive/+bug/1165174: 
  
“If you launch an instance using nova with the config drive enabled” 

4、使用config drive的两种方式: 
① nova boot --config-drive=true --image my-image-name .... 
  
② vi /etc/nova/nova.conf 
   force_config_drive=true 
  
5、在一个instance里面访问config drive: 
如果OS支持通过label访问磁盘,那么在instance里会有一个叫“config-2”的volume label,可以挂载它到instance本地: 

mount /dev/disk/by-label/config-2 /mnt/config 

如果OS没有使用udev将不会有/dev/disk/by-label目录,blkid可以发现它,并且同样可以被挂载: 
# blkid -t LABEL="config-2" -odevice 
/dev/vdb 
  
# mount /dev/vdb /mnt/config 
  
6、config drive的格式: 
config drive 的默认格式是一个"ISO 9660"的文件系统,可以在nova配置文件中指出: 

vi /etc/nova/nova.conf 
config_drive_format=iso9660 
config drive还有一个格式:VFAT ,这个格式已经是老旧的,现基本已用 ISO 9660 或 configuration volume label代替。 

这有一个config drive配置参数表: 
OpenStack镜像如何使用Config Drive实现元数据注入_第1张图片

  
7、注入时的问题解决: 
如果instance没有启动或者启动很慢,可能是注入时出了问题,在libvirt中设置参数:libvirt_injection_partition=-2 ,可以避免文件注入失败而导致的instance启动失败。 
8、config drive需要结合clout-init使用 
 

你可能感兴趣的:(cloud-init)