Назад | Перейти на главную страницу

имя хоста марионеточного сервера не соответствует сертификату - не может пройти аутентификацию.

Я знаю, что этот вопрос задавали раньше в разных вариантах. Я прочитал все сообщения, связанные с проблемой, но не могу заставить агента и мастера разговаривать друг с другом. Я загружаю 2 vm через станцию ​​vmwork, обе работают на linuxmint 17.

Я начну эту тему с того, что расскажу, как выглядят мои / etc / hosts и / etc / hostname в клиенте и puppetmaster.

В виртуальной машине моего клиента имя моего хоста в / etc / hostname выглядит следующим образом:

puppetclient

мои клиентские vm-хосты в / etc / hosts выглядят следующим образом:

127.0.0.1 localhost
127.0.1.1 puppetclient
192.168.75.143 puppetmaster

В моем хозяине vm / etc / hostname выглядит следующим образом:

puppetmaster

Мой мастер vm / etc / hosts выглядит следующим образом:

127.0.0.1 localhost
127.0.1.1 puppetmaster
192.168.75.144 puppetclient

Мой /etc/puppet/puppet.conf в моем мастере выглядит следующим образом:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

мой /etc/puppet/puppet.conf в моем клиенте выглядит следующим образом:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

[agent]
server=puppetmaster

Во время поиска у меня было много вариантов puppet.conf, и мне не хотелось публиковать здесь сообщения. Один из вариантов - иметь server=puppetmasterв [main] как в моем клиенте, так и в мастерской vm. В любом случае, для всех вариантов puppet.conf, которые я пробовал, моя первая ошибка при запуске sudo puppet agent --test является всегда warning: unable to fetch my node definitoin, but agent run will continue:ошибка после этого различна для каждого варианта puppet.conf, который я реализую. Может ли кто-нибудь подсказать мне правильную конфигурацию для моей установки?

Спасибо

Кажется, вы сначала установили и запустили своего мастера марионеток, а затем изменили имя хоста.

На мастере марионеток выполните: puppet config print certname Это покажет имя сертификата, которое использует ваш мастер. Он должен быть равен вашему имени хоста.

Вы можете проверить общее имя в сертификате мастера, если оно соответствует вашему имени хоста:

openssl x509 -noout -subject -in $(puppet config print ssldir)/certs/$(puppet config print certname).pem

Также я рекомендую использовать полное доменное имя в конфигурации марионетки. Если имя хоста отличается, самый простой способ - просто удалить или переименовать каталог SSL:

mv $(puppet config print ssldir){,_}

И перезапустите своего кукловода. Вам также нужно будет сделать это на клиентском узле, потому что CA изменится.