Только что переехав с Amazon на Joyent (неважно почему) и настроив свой Chef Server, я обнаружил следующую проблему:
Как вы, возможно, знаете, Chef устанавливает IP-адрес в соответствии с таблицей маршрутизации. Итак, в моем случае IP-адрес, переданный от клиента серверу, является моим общедоступным IP-адресом.
У меня есть рецепт динамической записи файла / etc / hosts с использованием IP и FQDN, сообщенных клиентом. Проблема в том, что мне нужно использовать частный IP-адрес, чтобы весь трафик, поступающий на локальную машину, был фактически локальным.
Я пробовал использовать node['network']['ipaddress_eth1']
в файле шаблона hosts.erb, но не работает.
Какое облако мне не хватает? Есть ли другой способ записать файл моих хостов, используя мой частный IP-адрес?
Спасибо
Обновить
На самом деле есть способ найти то, что я ищу, используя шеф:
chef > asdf = node['network']['interfaces']['eth1']['addresses'].keys.select { |a| a[/\A\d+\.\d+\.\d+\.\d+\Z/] }.first
Это вернет IP-адрес моего eth1.
Для решения этой проблемы я использовал ipaddr_extensions гем а затем добавить частный адрес приписывать охай.