hostname = Socket.gethostbyname(Socket.gethostname).first
не рекомендуется и будет работать только при правильной настройке обратного разрешения DNS. Эта ошибка Facter имеет более длинное объяснение, если необходимо.
Если вы прочитаете код facter, вы заметите, что они в некоторой степени обходят проблему, говоря :
fqdn = hostname + domainname
где:
hostname = %[hostname]
domainname = %[hostname -f] # minus the first element
Это разумное предположение, которое не зависит от настройки DNS (которая может быть внешней по отношению к устройству).