Мы все знаем (хороший пример по SF), что определение имени хоста Puppet может быть ... забавным.
В нашей компании (и я думаю, что мы не одиноки в этом) мы обычно предварительно настраиваем серверы в наших офисах и тестируем их, прежде чем доставить оборудование в удаленный центр обработки данных и установить их в стойку. Конечно, обратный DNS изменится при этом, даже если мы не изменим фактическое имя хоста системы.
Мы медленно разрабатываем нашу марионеточную установку, и я хотел бы быть уверен, что эти шаги не создадут проблем. Моя идея состоит в том, чтобы явно настроить желаемое полное доменное имя системы как certname
в puppet.conf
во время предоставления сервера (перед самым первым запуском марионетки). Мой процесс будет выглядеть примерно так:
Процесс поддерживается путем обнаружения среды в манифестах марионетки (например, на основе подсети, например они делают в Викимедиа) и при необходимости измените конфигурацию (например, resolv.conf
содержание, подходящее для каждой сети). Каждый узел certname
никогда не изменится за весь жизненный цикл системы.
Есть ли проблема с таким подходом? Можно ли это улучшить?
Я согласен с тем, что принудительное указание имени сертификата упростит задачу. Однако hostname
сама команда может вести себя очень непоследовательно, когда дело доходит до определения --fqdn
(он разрешает IP для hostname
, затем ищет обратное имя этого IP-адреса; все это можно настроить в /etc/hosts
конечно).
Если вы настроите имя хоста системы как полное доменное имя, а не только короткое имя, puppet не будет пытаться выполнять какие-либо забавные поиски имени. Он просто будет использовать эту строку как есть, разбивая ее на hostname
и domain
в первой точке и fqdn
быть всем. Это то, что вы также можете рассмотреть.