声明:
本博客欢迎转发,但请保留原作者信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!
原文地址:http://blog.csdn.net/gtt116/
概述
为了兼容EC2,openstack也提供了在虚拟机内通过http://169.254.169.254来获取虚拟机信息的接口。 以下是对该接口的介绍。
注意,以下命令是在虚拟机内部执行,不是在宿主机以及安装了Openstack的环境的虚拟机中运行。
基本使用方法
$ curl [http://169.254.169.254/openstack] 2012-08-10 latest
获取Openstack的虚拟机相关信息
$ 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": 0, "meta": {"priority": "low", "role": "webserver"}, "public_keys": {"mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDYVEprvtYJXVOBN0XNKVVRNCRX6BlnNbI+USLGais1sUWPwtSg7z9K9vhbYAPUZcq8c/s5S9dg5vTHbsiyPCIDOKyeHba4MUJq8Oh5b2i71/3BISpyxTBH/uZDHdslW2a+SrPDCeuMMoss9NFhBdKtDkdG9zyi0ibmCP6yMdEX8Q== Generated by Nova\n"}, "name": "test"}
获取EC2的虚拟机相关信息
$ curl [http://169.254.169.254/1.0/meta-data] ami-id ami-launch-index ami-manifest-path hostname instance-id local-ipv4 reservation-id $ curl [http://169.254.169.254/1.0/meta-data/ami-id] ami-0000005d
获取user-data
$ curl [http://169.254.169.254/2009-04-04/user-data] \#\!/bin/bash echo 'Extra user data here'
Havana新增接口
In havana you can get your vendor data from metadata server, then get the data by:
curl [http://169.254.169.254/openstack/2013-10-17/vendor_data.json]
2013-10-17 is the date of Havana release.In service side, add `vendordata_jsonfile_path=/etc/nova/vendordata.json` into nova.conf. then feed json content
into vendordata.json. Then your client can get the data from above command.