Использовать Chef для установки DNS перед запуском остальной части кулинарной книги?

#ruby-on-rails #ubuntu #vagrant #chef-infra #devops

#ruby-on-rails #ubuntu #vagrant #шеф-повар-ниже #devops

Вопрос:

Я следую за экскурсией по шеф-повару и изучаю, как устранить неполадки в chef (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

Однако решение работает только для существующих виртуальных машин. В моей кулинарной книге я создал шаблон resolv.conf.erb и в начале моего default.rb я поместил этот код:

шаблон ‘/etc/resolv.conf’ делает исходный код ‘resolv.conf.erb’ режим ‘644’ конец

Однако, независимо от того, как я пытаюсь это настроить (default.rb — это первое, что запускается моим файлом политики), chef запрашивает ubuntu wget из 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
  

Что еще мне нужно настроить, чтобы chef развернул resolv.conf перед попыткой wget?

Комментарии:

1. пожалуйста, уточните свой вопрос — хотите ли вы настроить распознаватель dns перед запуском начальной загрузки chef (до установки самого chef) или вы хотели бы, чтобы ваш рецепт запускался первым (был первым в списке запуска)?

2. Я полагаю, что это было бы до установки Chef. Я прочитал это, и я предполагаю, что первое, что он делает, это устанавливает клиент chef в образ, и именно там он создает свой wget.

Ответ №1:

chef выполняет начальную загрузку, загружая и устанавливая chef на узле, и только затем запускает chef-client с рецептами из списка запуска. таким образом, вам нужно, чтобы ваш узел был настроен с вашим любимым DNS-распознавателем, прежде чем chef запустит его начальную загрузку.

если вы используете vagrant , вы можете попробовать vagrant-dns или создать свой собственный vagrant basebox

Комментарии:

1. Не похоже, что есть способ установить его перед загрузкой виртуальной машины. Crud.

2. @LogicFailure_2019: уверен, что есть 🙂 просто настройте dns-распознаватель на образе вашего узла и создайте новый образ для использования.

3. это имеет смысл. Но я новичок, и мой Google-fu слаб. Я знаю, что ovf сохраняются в C:/Users /<myuser>/.vagrant.d/boxes в Windows. Вы предлагаете скопировать один из них? Или есть ли способ в virtualbox (или vagrant) изменить изображение? Каждый раз, когда я запускаю vagrant, кажется, что он извлекает базовый образ с 10.0.0.23.

4. Я думаю, что нашел нужное мне руководство: vagrantup.com/docs/virtualbox/boxes.html . Спасибо, мистер Рот!

5. @LogicFailure_2019: я обновил свой пост, и если он отвечает на ваш вопрос, пожалуйста, отметьте как решенный 🙂