8

I use linux for my cloud based servers on Amazon-EC2 and openstack. When trying to run:

sudo chhown ubuntu somepath

I get this error every once in a while:

sudo: unable to resolve host

Most answers to this question on the internet are to edit the /etc/hosts file.

However, I deploy my servers automatically. besides that, I am not logging on using "localhost", but rather my AWS public DNS:

ssh -i mykey.pem ubuntu@ec2-12-34-56-78.eu-central-1.compute.amazonaws.com

So I cannot just trivially insert localhost, not to mention that my IP can change after I reset my machine. (Don't want to "waste" my precious floating IPs for every server)

Also, I deploy tens of servers at a time, so I cannot afford the manual step of editing a text file. Is there an automated fix for this issue? Recently I've started using openstack, and the issue is present there too.

Kenster
  • 23,465
  • 21
  • 80
  • 106
eshalev
  • 3,033
  • 4
  • 34
  • 48
  • 1
    how about `sudo -s; chown ubuntu somepath`? any error? – BMW Jan 02 '15 at 11:15
  • Same error: unable to resolve hist SOME_DNS .Strange, this time I was unable to re-create it from AWS. But it consistantly manifested in openstack. I have noticed that while I ssh to an IP, the shell prompt is: ubuntu@SOME_DNS . SOME_DNS is the internal server name so i cannot ssh to it from the outside. – eshalev Jan 02 '15 at 11:46
  • from outside, you need use public ip – BMW Jan 02 '15 at 11:54
  • In this case (openstack), I did use a public IP (otherwise SSH would not have worked). But when I am already logged on, the prompt shows the hostname. With AWS I also have a public host-name, but that is not the case this time around. – eshalev Jan 02 '15 at 11:58
  • When you type your command, your terminal displays : `username@yourservername:~$ sudo chhown ubuntu somepath`. To fix this issue, you could try to add the line `127.0.0.1 yourservername` to the file `/etc/hosts`. Works for me. – Lokinou Jan 25 '19 at 09:40

2 Answers2

24

EC2 instances inside VPC will resolve their auto-assigned internal hostnames correctly, only if you configure the VPC correctly. You need:

DNS hostnames: yes
DNS resolution: yes

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html

Michael - sqlbot
  • 169,571
  • 25
  • 353
  • 427
4

To resolve this problem I ran the following commands:

sudo vi /etc/hosts

Then in the hosts file that opens up add:

127.0.0.1     10.0.30.150

Obviously the 10.0.30.150 address would be the IP of the host in the warning message.

ajtrichards
  • 29,723
  • 13
  • 94
  • 101