[英]Using cloud-init to change resolv.conf
我希望我的 openstack 设置能够工作,这样当我启动一个新实例时,应该将 8.8.8.8 添加到 dns-nameservers。
这是我的旧 /etc/resolv.conf(在 openstack 中生成的新 VM 中)-
nameserver 10.0.0.2
search openstacklocal
这是我想要的新 resolv.conf -
nameserver 8.8.8.8
nameserver 10.0.0.2
search openstacklocal
我遵循了本教程,并添加了必要的信息。 将 conf 解析到我的 cloud-init 配置文件(/etc/cloud/cloud.cfg) -
manage_resolv_conf: true
resolv_conf:
nameservers: ['8.8.4.4', '8.8.8.8']
searchdomains:
- foo.example.com
- bar.example.com
domain: example.com
options:
rotate: true
timeout: 1
这些更改在 openstack 主机的 /etc/cloud/cloud.cfg 文件中进行。 然而,这些变化似乎没有得到反映。
有什么建议吗?
它不会工作,因为 cloud-init 网络配置在启动过程中发生得太早。
查看云初始化阶段: https : //cloudinit.readthedocs.io/en/latest/topics/boot.html
网络配置在“本地”阶段完成,但来自 Openstack 的用户数据仅在网络启动后的“配置”阶段下载。 在这个阶段,网络配置被忽略。
相反,您需要编辑网络文件,然后通过使用runcmd
将命令传递给 cloud-init 来启动接口。
Cloud-init 会覆盖 /etc/sysconfig/network 文件以及 resolv.conf 的条目。 要禁用此功能,您可以通过创建文件 /etc/cloud/cloud.cfg.d/custom-network-rule.cfg 来为 cloud-init 配置创建自定义规则,其中包含 -
network: {config: disabled}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.