使用cloud-init更改resolv.conf

时间:2018-02-11 20:52:45

标签: openstack nameservers cloud-init

我希望我的openstack设置工作,以便在我启动新实例时,应将8.8.8.8添加到dns-nameservers。

这是我原来的/etc/resolv.conf(在openstack中生成的新VM中) -

nameserver 8.8.8.8
nameserver 10.0.0.2
search openstacklocal

这是我想要的新resolv.conf -

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

我遵循了this教程,并且 我已经添加了必要的信息。 resolv conf到我的配置文件(/etc/cloud/cloud.cfg)的cloud-init -

{{1}}

这些更改在openstack主机的/etc/cloud/cloud.cfg文件中进行。 但是,这些变化似乎没有得到反映。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这将不起作用,因为在启动过程中过早进行了云初始化网络配置。

请参阅cloud-init阶段:https://cloudinit.readthedocs.io/en/latest/topics/boot.html

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

相反,您需要编辑网络文件,然后通过使用runcmd将命令传递到cloud-init来启动接口。

答案 1 :(得分:0)

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

network: {config: disabled}