Как узнать, работает ли шеф-повар на виртуальной машине (т.е. бродяга)

У меня есть рецепт шеф-повара, который можно запускать как на виртуальных, так и на реальных машинах. Мне нужно уметь различать их внутри шеф-повара, потому что мне нужно относиться к ним по-разному. Я нашел что-то в Интернете, в котором говорилось, что я должен просто использовать

if node[:instance_role] == 'vagrant'

но это, кажется, не работает для меня. node[:instance_role] просто пуст.

Знаете ли вы какой-либо другой способ сделать это?

Я использую chef_solo с бродячим обеспечением


person Cristian Vasile    schedule 19.09.2014    source источник
comment
Я никогда не проверял это, но создаю их оба как узлы и сравниваю атрибуты узлов. Но ответ @coderanger выглядит многообещающе.   -  person Lukino    schedule 19.09.2014


Ответы (1)


Найдите под node['virtualization'] информацию о среде выполнения виртуальной машины. Однако Vagrant на самом деле не является системой VM, поэтому вы ничего об этом не увидите. Лучший вариант поведения, специфичного для Vagrant, — установить атрибут узла в вашем Vagrantfile и указать его в коде рецепта.

person coderanger    schedule 19.09.2014