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

How do I stop cloud-init from overwriting my hostname on AWS (CentOS)

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

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

但在 cloud-init 日志中我仍然看到 "Running module update-hostname" 和“迁移信号量 update_hostname.always 到配置更新主机名,频率始终”,并且在启动主机名后一两分钟 returns 到 AWS 默认值。

这是怎么回事?我该如何阻止它?

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

试试这个:

$ sudo vi /etc/cloud/cloud.cfg

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

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

一定要使用完整的命令"sudo hostnamectl set-hostname --static "

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

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

# 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.

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

sudo hostnamectl set-hostname my.persistent.hostname