https://www.ibm.com/developerworks/cn/cloud/library/1509_liukg_openstackmeta/

http://mathslinux.org/?p=591

http://blog.csdn.net/dingdingwolf/article/details/45745581

https://www.cnblogs.com/CloudMan6/p/6648039.html

http://xcodest.me/cloud-init-cause-vm-boot-slow.html

翻译官网

Compute使用虚拟机实例的元数据服务来检索特定于实例的数据。 实例访问http://169.254.169.254的元数据服务。 元数据服务支持两组API:一个OpenStack元数据API和一个兼容EC2的API。 这两个API都是按日期版本化的。

要检索OpenStack元数据API的受支持版本的列表,请向http://169.254.169.254/openstack发出GET请求:

$ curl http://169.254.169.254/openstack
--
--
--
latest

要列出与EC2兼容的元数据API的受支持版本,请向http://169.254.169.254发出GET请求:

$ curl http://169.254.169.254
1.0
--
--
--
--
--
--
--
--
latest

OpenStack API的元数据以JSON格式分发。 要检索元数据,请发送GET请求:

$ curl http://169.254.169.254/openstack/2012-08-10/meta_data.json
{
"uuid": "d8e02d56-2648-49a3-bf97-6be8f1204f38",
"availability_zone": "nova",
"hostname": "test.novalocal",
"launch_index": ,
"meta": {
"priority": "low",
"role": "webserver"
},
"project_id": "f7ac731cc11f40efbc03a9f9e1d1d21f",
"public_keys": {
"mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDYVEprvtYJXVOBN0XNKV\
VRNCRX6BlnNbI+USLGais1sUWPwtSg7z9K9vhbYAPUZcq8c/s5S9dg5vTH\
bsiyPCIDOKyeHba4MUJq8Oh5b2i71/3BISpyxTBH/uZDHdslW2a+SrPDCe\
uMMoss9NFhBdKtDkdG9zyi0ibmCP6yMdEX8Q== Generated by Nova\n"
},
"name": "test"
}

实例还通过元数据服务检索用户数据(通过API调用中的user_data参数传递,或通过openstack服务器创建命令中的--user_data标志传递),通过向http://169.254.169.254/openstack/发出GET请求2012-08-10/ USER_DATA:

$ curl http://169.254.169.254/openstack/2012-08-10/user_data
#!/bin/bash
echo 'Extra user data here'

元数据服务具有与Amazon EC2元数据服务的2009-04-04版兼容的API。 这意味着为EC2设计的虚拟机映像可以与OpenStack一起正常工作。

EC2 API为每个元数据元素提供一个单独的URL。 通过获取http://169.254.169.254/2009-04-04/meta-data/的GET查询来检索这些元素的列表:

$ curl http://169.254.169.254/2009-04-04/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
kernel-id
local-hostname
local-ipv4
placement/
public-hostname
public-ipv4
public-keys/
ramdisk-id
reservation-id
security-groups
$ curl http://169.254.169.254/2009-04-04/meta-data/block-device-mapping/
ami
$ curl http://169.254.169.254/2009-04-04/meta-data/placement/
availability-zone
$ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/
=mykey

实例可以通过向http://169.254.169.254/2009-04-04/meta-data/public-keys/0/发出GET请求来检索公共SSH密钥(当用户请求新实例时,通过密钥对名称来标识)OpenSSH的键:

$ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDYVEprvtYJXVOBN0XNKVVRNCRX6BlnNbI+US\
LGais1sUWPwtSg7z9K9vhbYAPUZcq8c/s5S9dg5vTHbsiyPCIDOKyeHba4MUJq8Oh5b2i71/3B\
ISpyxTBH/uZDHdslW2a+SrPDCeuMMoss9NFhBdKtDkdG9zyi0ibmCP6yMdEX8Q== Generated\
by Nova

元数据服务由nova-api服务或nova-api-metadata服务实现。请注意,nova-api-metadata服务通常只在多主机模式下运行,因为它检索实例特定的元数据。如果您正在运行nova-api服务,则必须将元数据作为/etc/nova/nova.conf中enabled_apis配置选项中列出的元素之一。默认的enabled_apis配置设置包括元数据服务,所以您不需要修改它。

主机访问169.254.169.254:80处的服务,并通过由nova-network服务建立的iptables规则将其转换为metadata_host:metadata_port。在多主机模式下,您可以将metadata_host设置为127.0.0.1。

对于要到达元数据服务的实例,nova-network服务必须将iptables配置为169.254.169.254地址的NAT端口80为metadata_host中指定的IP地址(默认为$ my_ip,即nova-network的IP地址服务)和/etc/nova/nova.conf中的metadata_port(默认为8775)中指定的端口。

最新文章

  1. 针对每种Windows Server 操作Excel、Word等Office组件遇到“ComException"、”80070005“等COM错误的解决方案大汇总
  2. MacOS长按无效问题
  3. malloc分配的内存空间是连续的吗
  4. poj2115-C Looooops(扩展欧几里德算法)
  5. poj 1556 The Doors
  6. JVM中的Stack和Frame
  7. Process manufacturing和Discrete manufacturing的区别
  8. Fedora 20 创建桌面快捷方式
  9. plsql developer导入导出数据库方法
  10. blazeDS集成spring的remote访问
  11. UML 结构图之类图 总结
  12. nodejs学习[持续更新]
  13. web开发基础(同步更新中)
  14. boost库之geometry<二>
  15. java 多线程基础
  16. [leetcode-553-Optimal Division]
  17. python之控制流
  18. FCC(ES6写法) Friendly Date Ranges
  19. JavaScript 基础结构
  20. zoj 3871

热门文章

  1. Family Gathering at Christmas(思维题)
  2. Ubuntu 10.04上安装MongoDB
  3. Linux内存管理 - slab分配器和kmalloc
  4. Win7多用户同时登陆
  5. C#操作Word,写数据,插入图片
  6. JAVAWEB开发中过滤器的概述及使用
  7. 洛谷P1968 美元汇率
  8. HDU 1084 What Is Your Grade?(排序)
  9. 网页头部ico 不显示
  10. cookie操作和代理