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

CAJ*_*CAJ 5 centos hostname amazon-web-services cloud-init

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

我认为 cloud-init 覆盖了我的主机名,所以我:

  • 在 /etc/cloud/cloud.cfg 中设置 preserve_hostname: true
  • 在 /etc/cloud/cloud.cfg.d/00_defaults.cfg 的 cloud_config_modules 部分注释掉 set-hostname 和 update-hostname

但是在 cloud-init 日志中,我仍然看到“运行模块更新主机名”和“迁移信号量 update_hostname.always 到 config-update-hostname 频率总是”,并且在启动后一两分钟主机名返回到 AWS 默认值。

到底是怎么回事?我该如何阻止?

小智 7

我知道这是一篇旧帖子,但我发现了解它很有用。

/etc/cloud/cloud.cfg文件中,添加hostname: <fqdn/hostname>如下preserve_hostname: <true/false>

# 这将导致set+update主机名模块无法运行(如果为true)
保留主机名: false
主机名:我的主机名

来源:https ://cloudinit.readthedocs.io/en/latest/topics/modules.html#set-hostname 。


CAJ*_*CAJ -9

我真正讨厌的 hack-around 是创建一个 cron 作业,每分钟设置一次主机名。改进的建议表示赞赏。