#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: я обновил свой пост, и если он отвечает на ваш вопрос, пожалуйста, отметьте как решенный 🙂