Google Cloud 自定义 GCE 主机名

2019 年 12 月 27 日

Google Cloud 自定义 GCE 主机名

1 DHCP 客户端将覆盖 GCE 主机名


GCE 的网卡 IP 地址是由 DHCP 分配,同时,DHCP 服务器还将发送 DNS 服务器和主机名,使用的 DHCP Option 有: DHCP Option 6-DNS 服务器,以及 DHCP Option 12-主机名。


NetworkManager DHCP 租约信息


cat /var/lib/NetworkManager/dhclient-xxx.lease:



系统日志信息:



点击以下文件:


cat /etc/dhcp/dhclient.d/google_hostname.sh



点击文件


cat /usr/bin/google_set_hostname



如果您已经修改了 DNS 服务器和主机名,则当 dhcp 客户端请求 IP 地址时,配置将会被覆盖。


操作流程如下:


1.DHCP Server ->


2.NetworkManager DHCP Option ->


3.DHCP client ->


4.google_set_hostname ->


5.change DNS server & hostname(更改 DNS 服务器或者主机名)


这篇文章将说明如何保持主机名(hostname)不被改变。


2 解决方案


根据上面的描述,我们可以更改以下的任何一项:


1.Don’t receive NetworkManager config on dhcp option 12


2.Change /etc/dhcp/dhclient.d/google_hostname.sh


3.Change /usr/bin/google_set_hostname


Can prohibit DHCP change the hostname.


这样做,就可以禁止 DHCP 更改主机名。


2.1 更改 NetworkManager 的配置


更改 NetworkManager 配置的目的,是取代 DHCP 选项 12-hostname。 DHCP 客户端将不再通过 DHCP 接收主机名。


2.2.1 设置 /etc/hostname


设置静态主机名:


echo whvm05.weiheng.ink > /etc/hostname


2.1.2 取代 dhcp 选项的 12-hostname


Create a config file, add config to supersede the dhcp option:


创建一个配置文件,添加配置以取代 dhcp 选项:


touch /etc/dhcp/dhclient-eth0.conf


echo ‘supersede host-name “”;’ >> /etc/dhcp/dhclient-eth0.conf


2.1.3 重新启动 NetworkManager


systemctl 重新启动 NetworkManager


检查配置:


cat /var/lib/NetworkManager/dhclient-eth0.conf



NetworkManager 自动生成的配置文件将包含 2.1.2 中的先前配置。


2.1.4 测试



如果重新引导 VM ,则主机名仍保持为 / etc / hostname 配置。


2.2 更改 google_hostname.sh


2.2.1 编辑 /etc/hostname 文件


echo whvm03.weiheng.ink > /etc/hostname


2.2.2 移除 yum-cron


任何配置的改变都会有 yum-cron 的存储,所以我们需要移除它们:


yum remove yum-cron -y


2.2.3 编辑 google_hostname.sh


将 “google_set_hostname” 替换为“:”:


sed -i “1,$ s/google_set_hostname/:/g” /etc/dhcp/dhclient.d/google_hostname.sh


cat /etc/dhcp/dhclient.d/google_hostname.sh



2.2.4 设置 hostname


hostname `cat /etc/hostname


2.2.5 测试



reboot 之后,主机名仍还没有变化:



2.3 更改 google_set_hostname


2.3.1 编辑 google_set_hostname


设置新的 new_host_name


sed -i ‘1 anew_host_name=cat /etc/hostname’ /usr/bin/google_set_hostname


sed -i ‘1,$ s/%%.*//g’ /usr/bin/google_set_hostname


2.3.2 移除 yum-cron


正如 2.2 中提到的那样,需要移除 yum-cron ,以保证配置没有随之改变:


yum remove yum-cron -y


2.3.3 测试



3.总结


谷歌计算引擎的代理将更改虚拟机的主机名,通过更改 dhcp 客户端配置,以及谷歌代理脚本,可以保持主机名不变。


文章版权归作者所有,未经许可不得转载。


2019 年 12 月 27 日 15:061042

评论

发布
暂无评论
发现更多内容

Dubbo微服务调用过程时序图

2流程序员

【架构师训练营】第 10 周总结

花生无翼

架构师训练营Week10作业

Frank Zeng

来自面试官的技术面试题

xcbeyond

Java 数据库 自我介绍 面试经验

架构师训练营 Week 10 作业

Wancho

【架构师训练营】第 10 周作业

花生无翼

对中台思维的思考

朱月俊

堆栈神奇应用之CXO让我做一个计算器!!

架构师修行之路

数据结构 堆栈

Dubbo微服务调用时序图及微服务架构个人见解

潜默闻雨

架构师课程第十周总结

dongge

架构训练营第十周感悟

张锐

架构师训练营 Week 10 总结

Wancho

week10 作业

雪涛公子

架构师训练营第十周作业

吴吴

week 10 总结

a晖

hive拉链表优化·百亿量级数据支持准实时更新

誓约·追光者

hive 实时数仓 海量数据库的设计与实践

Eureka常见问题汇总及注意事项

xcbeyond

Java SpringCloud Eureka 服务注册与发现 常见问题

微服务&DDD&中台

dony.zhang

中台 微服务 DDD

【架构师训练营 - week10 -1】作业

早睡早起

微服务&DDD

极客大学架构师训练营

对微服务架构的理解

朱月俊

架构师第十周

Tulane

week10 总结

雪涛公子

微服务与DDD

走过路过飞过

架构师训练营Week10学习总结

Frank Zeng

面试官:您能说说序列化和反序列化吗?是怎么实现的?什么场景下需要它?

xcbeyond

Java 面试题 序列化

芯片破壁者(十二.上):“大头儿子”模式下的韩国半导体

脑极体

OAuth 2.0

陈皮

练习 10-1

闷骚程序员

极客大学架构师训练营 --第10周

李朋

week 10作业

a晖

Google Cloud 自定义 GCE 主机名-InfoQ