Amazon web services 如何阻止cloud init在AWS(CentOS)上覆盖我的主机名

Amazon web services 如何阻止cloud init在AWS(CentOS)上覆盖我的主机名,amazon-web-services,centos,hostname,cloud-init,Amazon Web Services,Centos,Hostname,Cloud Init,我有一个启动时运行的脚本(通过rc.local)并根据它从AWS CLI查询的实例名称设置主机名。它可以工作,并且在引导日志的末尾显示“login:” 当时,我发现cloud init正在覆盖我的主机名,所以我: 在/etc/cloud/cloud.cfg中设置preserve_hostname:true 注释掉了/etc/cloud/cloud.cfg.d/00\u defaults.cfg的cloud\u config\u modules部分中的set hostname和update ho

我有一个启动时运行的脚本(通过rc.local)并根据它从AWS CLI查询的实例名称设置主机名。它可以工作,并且在引导日志的末尾显示“login:”

当时,我发现cloud init正在覆盖我的主机名,所以我:

  • 在/etc/cloud/cloud.cfg中设置preserve_hostname:true
  • 注释掉了/etc/cloud/cloud.cfg.d/00\u defaults.cfg的cloud\u config\u modules部分中的set hostname和update hostname
但在cloud init日志中,我仍然看到“正在运行模块更新主机名”和“迁移的信号量更新\u hostname.always以始终频率配置更新主机名”,并且在引导后一两分钟主机名返回AWS默认值


发生了什么事?如何阻止它?

我真正讨厌的方法是创建一个每分钟设置主机名的cron作业。感谢您的改进建议。

尝试以下方法:

$sudo vi/etc/cloud/cloud.cfg

然后根据需要注释掉“设置主机名”、“更新主机名”和“更新主机名”。


请务必使用完整的命令“sudo hostnamectl set hostname--static”

我知道这是一篇老文章,但我发现了解它很有用

/etc/cloud/cloud.cfg
文件中,将
主机名:
添加到
保留主机名:
的正下方:

#这将导致set+update主机名模块不工作(如果为true) 保留主机名:false 主机名:myhostname
资料来源:。

Ubuntu与之略有不同:


这些都不是该文件中启用的选项。此外,顶部的一条注释显示
警告:对该文件的修改可能会被/etc/cloud/cloud.cfg.d
中的文件覆盖。因此,正如我在最初的帖子中所说,我在
/etc/cloud/cloud.cfg.d/00_defaults.cfg
中注释掉了
设置主机名
更新主机名
。正如您所建议的,我还注释掉了
更新etc主机
,但这没有什么区别,我的主机名仍然被覆盖。 # This will cause the set+update hostname module to not operate (if true) preserve_hostname: false hostname: myhostname
sudo hostnamectl set-hostname my.persistent.hostname