How to identify this provider from within an instance

December 12, 2014 807 views

Is there a way for an Ubuntu 14.04 instance to tell whether it's running at this provider, as opposed to some other provider or in VirtualBox on my laptop, etc?

I realize that the provider could be identified via the startup script, that could "bake" that information into the instance when it's created. Or some external software could log into the instance and configure it accordingly. That's doable.

But I was wondering if there's a simple, unambiguous way for an instance that's already running, to tell that it's running at this provider, using only things that are already available to it.

I don't want to do an API call, download the list of instances, and have this instance try and identify itself in the list. There must be a simpler way, like the existence of a provider-specific package in the OS, or something like that. The test must be reliable and simple.


1 Answer

There are a couple ways.

1.) On most of our images the /etc/motd that is displayed when you login is modified from stock to display additional information about your droplet so checking this file against what you know to be standard would be one way, however the exact message displayed on new droplets may change with new releases so automating this may cause trouble in the future.

2.) An even easier way would be to do a whois on the IP address assigned to your droplet. Since the IP address given to your droplet is from our pool, a whois of the IP address will return DigitalOcean's details. This option would also work just as well with most other providers.

Have another answer? Share your knowledge.