Лялечка: ім'я вузла здається залежним від зворотного dns?


20

Здається, я стикаюся з невеликою проблемою розуміння того, як змусити це працювати. У мене є новий сервер, на якому я будую, сидячи за офісом NAT на роботі, його зворотна dns карта для office.mydomain.com, але я хочу, щоб машина була ns2.mydomain.comзаради маріонетки.

фрагмент nodes.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.comfqdn, факт порожній, як і $operatingsystem. Це майже як факти не виявляються належним чином. Чи можливо проблема NAT? Чи є якісь пропозиції щодо відстеження цієї причини цієї проблеми?

Відповіді:


26

Aaah, Виявлення імені лялечки Який кошмар ...

За замовчуванням, яке ім’я буде використовуватися для пошуку, яке nodeвизначення використовувати, базується на вмісті факту fqdn. Те, що насправді відображається, залежить від кількох різних речей, і так, зворотний DNS - це одна з них - і це перевагу над власним іменем хоста машини!

Однак це ім'я (як правило) застосовується лише під час генерації сертифікату. Ви фактично неправильно використовуєте node_nameзмінну - вона повинна бути встановлена ​​на один із "cert" або "facter". fqdnПараметр також НЕ рекомендується.

Що ви насправді хочете зробити, це встановити certnameпараметр на клієнті на ім'я вузла, яке ви хочете використовувати, а потім встановити node_nameна cert(або просто залишити його поза, оскільки certце за замовчуванням). Це візьме ім'я вузла з CN сертифіката, який представляє клієнт, і certnameпараметр гарантує, що це встановлено на щось розумне, а не на те, що facter вирішить придумати самостійно. На жаль, оскільки у вас вже створені "неправильні" серти, вам потрібно буде відновити ці серти ( rm -rf /var/lib/puppet/sslна клієнті та повторно запустити Puppet) після того, як ви встановите конфігурацію, щоб правильні серти були створені та використані.

Якщо все це звучить трохи складно, ти маєш рацію - так і є. Ласкаво просимо до Лялечки.


Гей, там - так дивлячись на лялькового майстра та ляльку - і те node_name=cert, cert_name=ns1.mydomain.comі інше оновлено та facter fqdnповертається ns1.mydomain.comна клієнта, але я все ще закінчуюсь тими ж повідомленнями про помилки office.mydomain.com.
gnarf

1
re: certname, ти маєш рацію, я записав неправильно і не перевіряв документи, як я мав би мати. Що стосується відсутності фіксації, то потрібно регенерувати клієнтський серт; Я оновив свою відповідь, щоб висвітлити це.
жіноча

1
Насправді - мій файл cert є, ns1.mydomain.com.pemа його CN також ns1 ... Це "правильно" так? office.mydomain.comце те, що воно використовується як своє ім’я вузла, і, мабуть, кожного разу, коли його намагаються схопити факти при аналізі, замість того, щоб використовувати ім'я cert як ім'я вузла. Можливо, мені щось інше не вистачає? Здається, жоден із моїх фактів не передається в аналізатор або info($fqdn)просто показує порожній рядок у межах, в які я його вклав.
gnarf

Я не знаю, що ви зробили, але вам вдалося зібрати щось реально добре. Я думаю, що ти сам.
жіноча

Ще одне оновлення: мені вдалося отримати всі "попередні налаштування" з-за офісної мережі та поставити новий сервер імен в прямому ефірі - як тільки він почав використовувати правильний зворотний DNS, всі факти з'явилися належним чином ...
gnarf

5

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


Це працювало для мене. (довелося видалити каталог ssl, як згадувалося вище)
bwizzy

Це також добре спрацювало і для мене, а також підтримується документацією на ляльку
DuffJ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.