gpt4 book ai didi

ubuntu - 使用 EC2 VPC 实例的新主机名动态更新主机文件

转载 作者:行者123 更新时间:2023-12-03 21:38:47 26 4
gpt4 key购买 nike

运行 sudo 时出现以下错误Amazon Web Services 上 EC2/VPC 上的 Ubuntu 14 服务器上的命令。

sudo: unable to resolve host ip-xxx-xx-x-xx 

我用 x 替换服务器的私有(private) IP 地址。

为了解决这个问题,我需要编辑 /etc/hosts文件。当我将以下行添加到主机文件时:
127.0.0.1 ip-xxx-xx-x-xx

现在我没有得到错误。 127.0.0.1 之后的值解析为 hostname命令值。
问题是我将来可能会创建一个 AMI 并恢复服务器,所以私有(private) IP 会改变。在 AWS forum ,他们建议添加一个脚本,使用新 IP( hostname 值)自动更新主机文件,以便在从 AMI 恢复服务器或自动缩放时工作。

如何使用主机名值更新主机文件,这样我就不必担心 future 的任何问题?

最佳答案

如果您由于某种原因无法启用 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

注意 :这将覆盖整个主机文件,因此请确保在其中写入所有需要的内容。

根据 AWS documentation , 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

在启动时运行

有一些替代方法可以让它在启动时运行。我建议您调用 rc.local (见 herehere )。不要忘记给你的脚本执行权限。

关于ubuntu - 使用 EC2 VPC 实例的新主机名动态更新主机文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34394477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com