AWS error - sudo: unable to resolve host ip-10-0-xx-xx
This issue is caused by not enabling enableDnsHostnames
in your VPC configuration.
enableDnsHostnames
Indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not. If you want your instances to get DNS hostnames, you must also set the
enableDnsSupport
attribute to true.
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html#vpc-dns-updating
You should enable the DNS hostnames on your VPC: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html#vpc-dns-updating
If for some reason, you cannot enable it, you can still use the /etc/hosts
to make it resolve, but this is definitely not the recommended solution
10.0.xx.xx ip-10-0-xx-xx
This worked for me:
Add the following line to /etc/hosts
127.0.0.1 ip-xxx-xx-x-xx
The ip thing is your private ip address
Can patch easily from command line as follows:
sudo sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/"
And checked that a reboot, or stop, then start the aws instance would preserve it. In case it is lost, can easily re-apply on boot, and can be added to any provision for new vms.
Example
Before:
ubuntu@ip-177-11-22-333:~$ sudo id
sudo: unable to resolve host ip-177-11-22-333
uid=0(root) gid=0(root) groups=0(root)
Fix:
ubuntu@ip-177-11-22-333:~$ sudo sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/"
sudo: unable to resolve host ip-177-11-22-333
After:
ubuntu@ip-177-11-22-333:~$ sudo id
uid=0(root) gid=0(root) groups=0(root)
ubuntu@ip-177-11-22-333:~$
Two Options:
Enabling the DNS hostnames for your VPC, so all the instances launched within the VPC will resolve the host
-
Edit /etc/hosts and add the below line
127.0.0.1 localhost 123.0.0.1 ip-10-0-1-18 ## (Replace with the private ip)
This is something you will need to do for every instance that will be launch within your VPC.