每次重启 Amazon EC2 实例时都会丢失修改后的 /etc/hosts 文件吗?

每次重启 Amazon EC2 实例时都会丢失修改后的 /etc/hosts 文件吗?

我在 Amazon EC2 上设置了一个 Ubuntu 8.10 服务器实例。我在服务器上安装了 ejabberd,但我遇到了一些问题,ejabberd 节点无法启动,因为每次重新启动实例时,云上的主机名都会发生变化。在我点击此链接后http://blog.kenweiner.com/2008/05/ejabberd-on-amazon-ec2-ubuntu-ami.html在 /etc/hosts 文件中编辑并添加主机名,它起作用了。不幸的是,每次我重新启动服务器时,/etc/hosts 文件都会重置为默认值。

我该如何解决这个问题?

答案1

这是 Canonical 为 EC2 构建的当前 Ubuntu 映像的一个已知问题:

https://bugs.launchpad.net/ubuntu-on-ec2/+bug/371936

您可以等待 Canonical 的下一个版本,或者运行我在 http://alestic.com 上发布的 EC2 的 Ubuntu 镜像(它们没有同样的问题)。

我已成功在 Alestic.com 图像上运行 ejabberd。

答案2

我知道这是一个非常古老的线程,但是 ggl 上弹出一个,是的,它是 cloud-init,在我的 debian ami 上,我添加了我的自定义条目:

/etc/cloud/templates/hosts.debian.tmpl

让我们看看下次自动重启时是否有效

aws ec2 create-ami ...

答案3

你可以尝试云初始化在实例启动期间执行主机文件清理。它包含在所有当前官方 Ubuntu EC2 映像中,并允许您运行由--user-data开关传递的初始化脚本ec2-run-instances(或 AWS 控制台向导中的相应输入字段),该脚本将在启动时运行。有点像rc.local

编辑:一开始我没意识到另一条评论是 Eric 自己写的。他在 Alestic 的博客中有很多有用的内容,包括一个关于上述 UserData 的

相关内容