Кукольный: Кажется, имя узла зависит от обратного днс?


20

Я, кажется, сталкиваюсь с небольшой проблемой понимания того, как заставить это работать. У меня есть новый сервер, который я создаю, сидя за офисным NAT на работе, его обратный днс отображается office.mydomain.com, но я хочу, чтобы машина была ns2.mydomain.comради марионетки.

фрагмент node.pp:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits basenode {
  info('office.mydomain.com')
}

И мой 'puppet.conf' на клиенте:

[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert

Мой системный журнал на сервере сообщает:

Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com

Как я могу заставить его захватить конфигурацию, ns2.mydomain.comне делая что-то вроде этого:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits 'ns2.mydomain.com' {
  info('office.mydomain.com')
}

ОБНОВЛЕНИЕ : Эта проблема, кажется, вызывает другие проблемы. Например, если я в info("$fqdn")то время как машина сидит за office.mydomain.comфактом fqdn, то он пустой, как и $operatingsystem. Почти как факты не раскрываются должным образом. Есть ли проблема с NAT? Есть ли какие-либо предложения по поиску причины этой проблемы?

Ответы:


26

Аааа, обнаружение имени хоста Puppet. Какой кошмар...

По умолчанию то, какое имя будет использоваться для nodeопределения используемого определения, основано на содержании факта fqdn. То, на что это действительно отображается, зависит от нескольких разных вещей, и да, обратный DNS является одним из них - и он предпочтительнее собственного имени хоста машины!

Однако это имя (обычно) применяется только во время создания сертификата. Вы на самом деле неправильно используете node_nameпеременную - она ​​должна быть установлена ​​в «cert» или «facter». fqdnПараметр также не рекомендуется.

То , что вы на самом деле хотите сделать , это установить certnameпараметр на клиенте имя узла , который вы хотите использовать, а затем установить node_nameна cert(или просто оставить его, так как certпо умолчанию). Это будет брать имя узла из CN сертификата, который представляет клиент, и этот certnameпараметр гарантирует, что для него установлено что-то разумное, а не какой-либо фактор, который решит придумать сам. К сожалению, поскольку у вас уже созданы «неправильные» сертификаты, вам потребуется заново создать эти сертификаты ( rm -rf /var/lib/puppet/sslна клиенте и повторно запустить Puppet) после настройки конфигурации, чтобы создать и использовать нужные сертификаты.

Если все это звучит немного сложно, вы правы - это так. Добро пожаловать в кукольный


Привет, так что, глядя на puppetmaster и puppet, они оба node_name=certобновились cert_name=ns1.mydomain.comи facter fqdnвернулись ns1.mydomain.comна клиент, но я по-прежнему получаю одни и те же сообщения об ошибках office.mydomain.com.
gnarf

1
re: certname, вы правы, я ошибся и не проверил документы, как я должен был. Что касается отсутствия фиксации, вам необходимо восстановить сертификат клиента; Я обновил свой ответ, чтобы покрыть это.
womble

1
На самом деле - мой файл сертификата ns1.mydomain.com.pemи его CN также ns1 ... Это "правильно", верно? office.mydomain.comэто то, что он использует в качестве имени узла, и, по-видимому, всякий раз, когда он пытается захватить факты при анализе, вместо использования имени сертификата в качестве имени узла. Возможно, я что-то упускаю? Кажется, что ни один из моих фактов не передается парсеру или info($fqdn)просто показывает пустую строку в области, в которой я его поместил.
gnarf

Я не знаю, что ты наделал, но ты сумел что-то сделать до конца хорошо. Я думаю, что ты сам по себе.
womble

Еще одно обновление: мне удалось получить все «предварительные настройки» из-за локальной сети офиса и запустить новый сервер имен - как только он начал использовать правильный обратный DNS, все факты были правильно
обнаружены

5

Мне кажется, мне повезло (хотя есть еще несколько тестовых случаев, которые я хочу увидеть) в редактировании, /etc/hostsчтобы в качестве первого варианта указать желаемый fqdn под 127.0.0.1. Кажется, он обнаруживает это правильно / передает факты. Хотя кажется, мне все еще нужно создать узел с именем, office.mydomain.comкоторый наследует нужный мне узел.


Это сработало для меня. (пришлось удалить каталог ssl, как упоминалось выше)
bwizzy

Это хорошо сработало и для меня, и также поддерживается документацией Puppet: puppetlabs.com/blog/resolving-dns-issues
DuffJ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.