[英]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.