Ida*_*ter 2 ssh ubuntu hosts amazon-web-services amazon-vpc
sudo在Amazon Web Services上的EC2/VPC上的Ubuntu 14服务器上运行命令时出现以下错误.
sudo: unable to resolve host ip-xxx-xx-x-xx
Run Code Online (Sandbox Code Playgroud)
我用x替换服务器的私有IP地址.
为了解决这个问题,我需要编辑/etc/hosts文件.当我将以下行添加到hosts文件时:
127.0.0.1 ip-xxx-xx-x-xx
Run Code Online (Sandbox Code Playgroud)
现在我没有得到错误.127.0.0.1之后的值解析为hostname命令值.问题是我可能会创建一个AMI并在将来恢复服务器,因此私有IP将会改变.在AWS论坛中,他们建议添加一个脚本,该脚本使用新IP(hostname值)自动更新hosts文件,以便在从AMI还原服务器或自动扩展时使用它.
如何使用hostname值更新hosts文件,因此我不需要担心将来出现的任何问题?
如果您出于某种原因无法DNS hostnames在您的VPC上启用,那么您应该完全按照AWS论坛中的建议进行操作.编写脚本以自动更改/etc/hosts文件.例:
#!/bin/bash
LOCAL_HOSTNAME=$(curl http://169.254.169.254/latest/meta-data/local-hostname)
cat << EOF >> /etc/hosts
127.0.0.1 $LOCAL_HOSTNAME
EOF
Run Code Online (Sandbox Code Playgroud)
注意:这将覆盖整个hosts文件,因此请确保在那里写下您需要的所有内容.
根据AWS文档,local-hostname将返回类似的内容ip-10-251-50-12.ec2.internal.如果这不是您想要的,请检查前面提到的文档中的其他可用元数据.
假设您不想要该.ec2.internal部件,您可以使用自定义脚本来摆脱该部分cut.例:
curl http://169.254.169.254/latest/meta-data/local-hostname | cut -d '.' -f1
Run Code Online (Sandbox Code Playgroud)
有一些替代方案可以让它在启动时运行.我建议你给它打电话rc.local(见这里和这里).不要忘记给脚本执行权限.
| 归档时间: |
|
| 查看次数: |
4418 次 |
| 最近记录: |