Назад | Перейти на главную страницу

реплицировать существующий узел повара

У меня есть виртуальная машина (размещенная «в облаке»), которая была предоставлена ​​шеф-поваром с помощью собственного сервера шеф-повара моей организации.

Я хотел бы реплицировать эту виртуальную машину локально (используя виртуальную машину, управляемую бродягой), чтобы выполнить некоторую разработку.

Я смог сделать то, что хочу, создав новый узел на сервере Chef и вручную скопировав роли, рецепты, атрибуты и т. Д. Из существующего узла.

Мне кажется, что это будет довольно распространенный вариант использования (например, для репликации узла / виртуальной машины), и поэтому, вероятно, есть способ легко это сделать (без необходимости вручную копировать роли, рецепты, атрибуты и т. Д.) - но, увы, Я не могу найти ни одного.

Что я делаю, так это настраиваю локальную виртуальную машину (через Vagrant или простую виртуальную машину VirtualBox), а затем устанавливаю там полную установку сервера Chef. После этого я копирую свой обычный файл knife.rb в альтернативный файл knife.rb (например, knife.local.rb), где я меняю URL-адрес сервера Chef и загружаю все свои данные через

knife cookbook upload -a -c ~/.chef/knife.local.rb
knife data bag from file users users/* -c ~/.chef/knife.local.rb
etc etc...

Наконец, при тестировании ваших кулинарных книг через Vagrant вы можете использовать для этого адрес местного шеф-повара! В качестве помощника вы можете определить lknife функция, которая может быть сервером knife инструмент для местного шеф-повара. Просто введите .bashrc вашего пользователя

function lknife { `which knife` "$@" -c "$HOME/.chef/knife.local.rb"; }

knife edit может это сделать:

knife edit <existing node name>  # Change "name" attribute to something unique

Это создаст новый узел с тем же списком запусков и атрибутами (за исключением имени), что и существующий узел.