2014-10-07 1 views
2

Представьте, что у вас есть 3 машины - 1 рабочая станция-шеф-повар, шеф-сервер и 1 клиент, который настроен.IP-адрес шеф-повара

Итак, мне нужно извлечь IP-адрес клиента из configfiles/процессов/etc на chef-сервере или наоборот: извлечь IP-адрес сервера на машине-клише (узле). (это означает, что я не могу использовать рабочую станцию ​​для извлечения IP-адреса).

ответ

2

На рабочей станции повара, получить узлы Ipaddress с ножом:

knife search node '*' -a ipaddress

И получить IP-адрес сервера повара расщепления его имени хоста с DNS, получая имя хоста сервера повара из файла knife.rb в конце концов ...

я не получаю точку мечения вашего вопроса с рубином, если вы не хотите использовать его ...

+0

Это работает. Большое спасибо! – Jade

0

Изнутри кода шаблона на клиенте вы можете использовать <%= node['ipaddress'] %>, чтобы получить IP-адрес интерфейса по умолчанию. Не уверен, что вы подразумеваете под «на шеф-сервере».

+0

Я пишу поддержку продукт для шеф-поваров. И мне нужно извлечь IP-адрес сервера (или клиента) где-нибудь. Я не могу использовать какое-либо рубиновое кодирование. Только configfiles или просто другие утилиты UNIX (например, top) – Jade

+0

С клиентской машины вы можете напрямую использовать ohai, запустив 'ohai ipaddress'. Если вы хотите запросить сервер, вы можете использовать любой из нескольких клиентских библиотек, таких как [chef-api] (https://github.com/sethvargo/chef-api) или [PyChef] (https: // github. ком/coderanger/pychef /). Можно [запросить сервер Chef с помощью cURL] (https://docs.getchef.com/auth.html#curl), но я действительно не рекомендую его. – coderanger