1

如何从服务器本身中找到有关 Rackspace 云服务器的信息?

亚马逊 AWS 有它,它记录在这里:http ://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html?r=7479

4

2 回答 2

0

从您的应用程序代码中,您可以使用此处描述的技术(针对 C#)找到本地服务器自己的外部 IP 地址:https ://stackoverflow.com/a/1069113/12484

然后,一旦您有了 IP 地址,您就可以使用 Rackspace Cloud API 查询所有活动服务器的列表,并获取具有匹配 IP 地址的服务器的信息。示例代码(C#,使用OpenStack.net SDK):

CloudIdentity cloudIdentity = new CloudIdentity { APIKey = API_KEY, Username = USERNAME };
CloudServersProvider provider = new CloudServersProvider(cloudIdentity);

IEnumerable<Server> servers = provider.ListServersWithDetails(region: REGION);
foreach (Server server in servers)
{
    if (server.AccessIPv4 == ipAddress)
    {
        Console.Out.WriteLine("Server ID:" + server.Id);
        Console.Out.WriteLine("  Flavor: " + server.Flavor.Name);
        Console.Out.WriteLine("  Image: " + server.Image.Name);
        Console.Out.WriteLine("  PowerState: " + server.PowerState.Name);
        Console.Out.WriteLine("  Status: " + server.Status.Name);
        Console.Out.WriteLine("  UserId: " + server.UserId); 
        break;       
    }
}

USERNAME, API_KEY, 和REGION上面的代码应该替换为您自己的 Rackspace Cloud 帐户的实际值。

于 2014-04-30T14:04:00.830 回答
0

您可以使用 Rackspace 云服务器 API:http ://www.rackspace.com/cloud/cloud_hosting_products/servers/api/

这里有一个 python 实现:http ://packages.python.org/python-cloudservers/

或者命令行工具也非常有用:http: //jsquaredconsulting.com/blog/2010/11/rscurl-a-rackspace-cloud-server-command-line-tool/

这是最实用的链接/\

于 2012-01-18T04:36:02.343 回答