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

时间:2016-06-30 03:14:03

标签: 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_defaults.cfg
  • 的cloud_config_modules部分中注释掉了set-hostname和update-hostname

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

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

5 个答案:

答案 0 :(得分:1)

https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname-rhel7-centos7/

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

答案 1 :(得分:1)

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

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

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: false
hostname: myhostname

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

答案 2 :(得分:1)

与Ubuntu略有不同: https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname/

sudo hostnamectl set-hostname my.persistent.hostname

答案 3 :(得分:0)

试试这个:

$ sudo vi /etc/cloud/cloud.cfg

然后根据需要注释掉'set_hostname','update-hostname'和'update_etc_hosts'。

答案 4 :(得分:-1)

我非常讨厌的黑客攻击是创建一个每分钟设置主机名的cron作业。改进建议表示赞赏。

相关问题