Openstack 使用cloud init更改resolv.conf

Openstack 使用cloud init更改resolv.conf,openstack,nameservers,cloud-init,Openstack,Nameservers,Cloud Init,我希望openstack的设置能够正常工作,以便在启动新实例时,将8.8.8.8添加到dns名称服务器 这是我的旧/etc/resolv.conf(在openstack中生成的新VM中)—— 这是我想要的新resolv.conf- nameserver 8.8.8.8 nameserver 10.0.0.2 search openstacklocal 我跟着教程走,然后 我已经添加了必要的信息。将resolv conf解析为cloud init的配置文件(/etc/cloud/cloud.cf

我希望openstack的设置能够正常工作,以便在启动新实例时,将8.8.8.8添加到dns名称服务器

这是我的旧/etc/resolv.conf(在openstack中生成的新VM中)——

这是我想要的新resolv.conf-

nameserver 8.8.8.8
nameserver 10.0.0.2
search openstacklocal
我跟着教程走,然后 我已经添加了必要的信息。将resolv 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网络配置在启动过程中出现得太早

请参见云初始化阶段:

网络配置在“本地”阶段完成,但Openstack中的用户数据仅在网络启动后的“配置”阶段下载。在此阶段,将忽略网络配置


相反,您需要编辑网络文件,然后通过向cloud init传递命令来打开接口。

cloud init将覆盖/etc/sysconfig/network file以及resolv.conf的条目。要禁用此功能,您可以通过创建文件/etc/cloud/cloud.cfg.d/custom-network-rule.cfg来为cloud init config创建自定义规则,该文件包含-

network: {config: disabled}

您是否在文件的第一行包含
#cloud config
标题?是的,先生。是的。你是否
systemctl重新启动了cloudinit
network: {config: disabled}