проблема с именем марионеточного хоста

10

Я искал в Интернете, и я вижу, что несколько других людей имели эту проблему в других списках / форумах. Когда я запускаю sudo puppetd --waitforcert 60 - во второй раз после подписания сертификата на главном сервере, я получаю эту ошибку:

notice: Got signed certificate
warning: Certificate validation failed; considering using the certname configuration option
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate

Я не уверен, что понимаю, в чем проблема или как ее исправить. Вот почему я спрашиваю.

Я устанавливаю кукольный на двух серверах в моей локальной сети. Puppetmaster называется «puppet», а другой сервер называется «puppetclient». Я помещаю puppet в / etc / hosts для puppetclient.

Запуск hostname -f отобразит puppet и pupperclient на соответствующих серверах. Я не уверен, что еще попробовать. У кого-нибудь есть понимание?

кванты
источник

Ответы:

9

Похоже, сертификат puppetmaster был создан, когда хосту было присвоено имя, отличное от «puppet». Воссоздать сертификат, и вы должны быть хорошими.

Имя, хранящееся в сертификате, должно совпадать с тем, к чему вы настроили свой клиент (точно). Например, если вы настроите свой клиент для подключения к «puppet.domain.com», вы получите сообщение об ошибке, если сертификат называется «puppet», и наоборот.

ВИК
источник
Это случилось со мной несколько часов назад. Требуется полное доменное имя.
Пит ТерМаат
добавление .local на клиенте добилось цели. хотя имя хоста -f его не показывало. Спасибо!
1
Возможно, есть лучший способ, но для меня я восстановил сертификаты CA, rm -rf /var/lib/puppet/sslа затем перезапустил
мастера кукловодов
6

Если вы хотите использовать DNS CNAME для своего мастера puppetmaster, вы можете запустить его как:

puppetmaster --certname cname.domain.org

который заставит puppetmaster использовать cname.domain.orgвместо полностью определенного доменного имени по умолчанию.

Мартин
источник
2

Опция --certname cname.domain.orgflag, похоже, сделала свое дело для меня (на Amazon EC2)

кванты
источник
1

Вы можете спросить facter (facter fqdn), каково имя хоста, и посмотреть, соответствует ли это тому, что вы ожидаете. Также посмотрите (по умолчанию) / var / lib / puppet / ssl / и посмотрите, как выглядят сертификаты, если у них нет правильных имен хостов, которые могут быть вашей проблемой. Так как puppet выполняет все свои коммуникации через HTTPS, он довольно чувствителен к разрешению и именам хостов.

Придерживаться
источник
1

Перед установкой Puppet на указанных клиентах и ​​серверах проверьте файл /etc/resolv.conf и убедитесь, что первая запись домена в строке «поиск» - это домен, под которым вы хотите запустить Puppet. Например:

поиск my.puppetdomain.com my.public.domain.com

nameserver 192.168.1.1 nameserver xxx.xxx.1.1

На этапе установки Puppet сервер Puppet создает свои сертификаты на основе первой поисковой записи в /etc/resolv.conf. Я нашел это трудным путем. Если вы видите ошибки, связанные с сертификатом, на любом из узлов марионеток, выполните следующие действия:

1) Отредактируйте /etc/resolv.conf и убедитесь, что первый домен, указанный в строке «поиск», отражает домен, в котором вы хотите запустить Puppet.

2) Удалите puppet (оставьте каталог / etc / puppet без изменений).

3) rm -rf / var / lib / puppet

4) Переустановите Puppet (это создаст новый каталог / var / lib / puppet).

5) При выполнении этого на сервере Puppet запустите / usr / sbin / puppetmasterd --mkusers (или запустите / usr / local / sbin / puppetmasterd --mkusers ). Это создаст все необходимые файлы в / var / lib / puppet, включая новые внутренние сертификаты, используя правильное доменное имя.

6) При выполнении этого на клиенте Puppet запустите Puppet в подробном режиме с включенным флагом --waitforcert : puppetd -server .puppetdomain.com --waitforcert 60 --test Этот шаг отправит запрос сертификата на сервер Puppet.

7) На сервере Puppet перечислите ожидающие сертификаты:

список кукол

Вы должны увидеть имя хоста клиента Puppet, который делает запрос:

puppetclient1.puppetdomain.com

8) На сервере Puppet подпишите сертификат указанного выше клиента Puppet:

puppetca - знак puppetclient1.puppetdomain.com

Тогда вы сделали.

НТН ....


источник
0

Разве Puppet и Puppetclient разрешаются в DNS? Если нет, вы можете отредактировать файл / etc / hosts, чтобы отобразить IP-адреса и имена хостов. IIRC, вам нужно сделать это только на клиенте.

slillibri
источник