linux – 如何覆盖DHCP在AWS中的CentOS7盒上配置的主机名?

参见英文答案 > Correctly setting the hostname – Fedora 20 on Amazon EC25个
标题几乎说明了一切.我在运行CentOS 7的EC2中有一个VM.它使用DHCP,这似乎是EC2的要求.无论我尝试什么,DHCP都会在重启时不断覆盖主机名.我不会列举它,但我已经尝试了几乎所有的建议: Override DHCP hostname on RHEL5/CentOS/Amazon Linux以及谷歌搜索出现在其他几个网站上的那些建议.我不明白它是特定的OS版本还是AWS / EC2环境,但是我无法更改主机名并使其在重新启动时保持不变.甚至通过/etc/rc.d/rc.local强制它(添加“/ bin / hostnamectl set-hotname foo.bar.baz”)也行不通.我无法相信其他AWS / EC2用户没有想到这一点出来.请帮忙.

更新:
这也不起作用:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-hostname.html即,在AWS的Route53中为该框添加DNS A记录(并验证它是否有效),并在/ etc / sysconfig / network中设置HOSTNAME = foo.bar.baz(在重启后检查)是也是徒劳的.

更新2:
针对Fedora 20回答了类似的问题.那里接受的解决方案还涉及重新配置cloud-init,但方式不同.此外,尚不清楚该问题/解决方案是否适用于其他发行版.因此,我觉得我的问题应该留给其他人运行CentOS并以这种方式进行搜索(是的,我知道Fedora和CentOS是兄弟姐妹,但并不是每个人在搜索解决方案时都会搜索所有同义词).

解决方法

好的.在得到答案之前,我在这个问题上花了大概五个小时. @ Sirex建议卸载cloud-init是一个线索.从本质上讲,cloud-init是大多数EC2映像(AMI)内置的服务,包括AMI Linux和CentOS.该系统做了很多事情(谷歌),并可能对某些配置和维护foo有用.因此,我犹豫是否只是禁用它.但是,它似乎也设置了EC2主机名.因此,要使用您首选的主机名覆盖它,只需执行以下操作:

(1)创建一个名为99 _… cfg(我命名为我的99_hostname.cfg)的文件,并将以下内容写入其中:

#cloud-config
hostname: foo
fqdn: foo.bar.baz

当然,用您的主机名和完全限定的域名替换“foo”和“foo.bar.baz”.

(2)将此文件放在/etc/cloud/cloud.cfg.d/99_hostname.cfg中

(3)确保通过以下命令正确设置文件权限/ owner / selinux上下文(如果您有SELinux强制执行):

sudo su -
cd /etc/cloud/cloud.cfg.d/
chown root: 99_hostname.cfg
chmod 644 99_hostname.cfg
chcon system_u:object_r:etc_t:s0 99_hostname.cfg

(4)重新启动VM,并设置新的主机名.如果您不信任bash提示符,则可以通过执行以下任一操作来检查:

hostnamectl

要么

cat /etc/hostname

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...