Я знаю, что этот вопрос задавали раньше в разных вариантах. Я прочитал все сообщения, связанные с проблемой, но не могу заставить агента и мастера разговаривать друг с другом. Я загружаю 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 изменится.