Это ошибка Chef/ohai при работе с FQDN?
Позвольте мне провести вас через мои шаги.
- У меня есть узел с базовой ОС RHEL 5.10; файл /etc/hosts пуст
- Запуск CLI "hostname -f" дает server1-nodex.domain.com, что правильно
- Я успешно запускаю узел; когда я выполняю "показ узла узла", я вижу правильное полное доменное имя, например, server1-nodex.domain.com
Я запускаю рецепт с созданием файла /etc/hosts и помещаю его в этот формат; обратите внимание на псевдоним (nodex) после IP. Мне нужно это в этом формате!
10.22.10.10 nodex server1-nodex.domain.com
- Теперь, если я сделаю узел ножа, покажем имя_узла, шеф-повар покажет полное доменное имя как "узел x". Да???
- Конечно, запуск CLI "hostname -f" также дает "nodex".
Просто чтобы проверить, я делаю статистику, но создаю файл /etc/hosts в этом формате; обратите внимание, что псевдоним теперь появляется после полного доменного имени в строке (мне это не нужно)
10.22.10.10 server1-nodex.domain.com nodex
Теперь, если я делаю узел ножа, показываю имя_узла, Chef показывает правильное полное доменное имя, так же как и "hostname -f".
Почему Chef делает это с моим полным доменным именем, основываясь на том, что находится в файле /etc/hosts? У меня есть процесс конфигурации, предшествующий Chef (сценарии оболочки), который настраивает файл /etc/hosts так, как я хочу, и на полное доменное имя НЕ влияет?
Это "ошибка" или, по крайней мере, нежелательный побочный эффект у шеф-повара?
2 ответа
Я почти уверен, что это не ошибка Шеф-повара, а сценарии инициализации на вашем компьютере с Linux. Они читают /etc/hosts
определить, как установить имя хоста.
Смотреть в /etc/sysconfig/network-scripts
Вы должны иметь возможность переопределить это в /etc/sysconfig/network
,
Формат файла hosts:
IP_address canonical_hostname [aliases...]
Таким образом, первое имя хоста после IP-адреса является уникальным именем для этой системы, а все, что после этого является псевдонимом. Вы изменили их в своем примере.
Как правило, по умолчанию ваш распознаватель настроен на поиск имен хостов в файле хостов, а затем использует систему DNS (см. /Etc/resolv.conf и /etc/host.conf). Таким образом, выполнение hostname -f в вашей системе для получения полного доменного имени будет зависеть от ваших изменений в файле / etc / hosts.
Шеф-повар (охай) использует распознаватель, чтобы получить fqdn. Поскольку вы вносите изменения в / etc / hosts, меняется ответ решателя, он меняет ответ Chef.