我正在跟随厨师之旅,并学习如何对厨师(https://learn.chef.io/modules/keep-your-cookbooks-up-to-date#/)进行故障排除。问题是我使用的每个发行版都得到了10.0.2.3 resolv.conf文件。
我尝试过这篇文章:
https://serverfault.com/questions/453185/vagrant-virtualbox-dns-10-0-2-3-not-working
但是,该解决方案仅适用于现有的VM。在我的食谱中,我创建了一个模板resolv.conf.erb,并在default.rb的开头放置了以下代码:
模板'/etc/resolv.conf'做
来源'resolv.conf.erb'
模式“ 644”
结束
但是,无论我如何尝试和配置它(default.rb是我的policyfile运行的第一件事),厨师都要求ubuntu从omnitruck.chef.io中获取,然后再部署它的resolv.conf模板。这是default.rb的全部内容:
#
# Cookbook:: base
# Recipe:: default
#
# Copyright:: 2019, The Authors, All Rights Reserved.
include_recipe 'hardening::default'
template '/etc/resolv.conf' do
source 'resolv.conf.erb'
mode '644'
end
file '/etc/motd' do
content node['base']['message']
end
我还需要配置什么才能使厨师在尝试wget之前部署resolv.conf?
最佳答案
Chef通过在节点上下载并安装Chef来执行其引导程序,然后才使用运行列表中的配方执行Chef-client。因此,在Chef启动其引导程序之前,您需要为节点配置自己喜欢的dns解析器。
如果您使用的是vagrant
,则可以尝试vagrant-dns
或build your own vagrant basebox
关于ruby-on-rails - 在运行其余食谱之前,使用Chef设置DNS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55190986/