Я установил мастер марионеток и агент на одном компьютере. При запуске клиента появляется следующее сообщение об ошибке.
puppet agent --server=agent.com --no-daemonize --debug
err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed. This is often because the time is out of sync on the server or client
Узнай FQDN своего кукловода, выдав:
# openssl x509 -noout -subject -in /var/lib/puppet/ssl/ca/ca_crt.pem
subject= /CN=Puppet CA: host.domain.com
Сравните с выводом (если есть):
# puppet cert list --all
Добавьте запись в свой /etc/hosts
файл, указывающий на прослушивание IP в puppetmaster
порт (8140
):
192.168.124.2 host.domain.com host
Чтобы узнать, какой IP-адрес использовать, вам необходимо знать процесс прослушивания, который отличается, если это автономный puppetmaster
или apache
+passenger
монтаж. Ты можешь использовать:
netstat -an | grep 8140.*LISTEN
Проверьте свои /etc/puppet/puppet.conf
файл, в частности server=
запись, которая должна указывать на полное доменное имя, описанное выше.
Не использовать localhost
, если вы этого не хотите puppetmaster
быть найденным.
Перед запуском pupppet agent
, выпуск:
# puppet agent --test --waitforcet 2
который предписывает агенту отправить CSR в центр сертификации марионеток и дождаться его подписания.
Проверить с помощью
# puppet cert --list
Ожидает подписания CSR. Подписать его:
# puppet cert sign host.domain.com
Наблюдайте, как кукольный агент получает составленный каталог и применяет его. После этого вы готовы запустить агент и добавить его в сценарии запуска.
Попробуйте сделать запись в / etc / hosts
127.0.0.1 localhost.localdomain localhost puppet
удалить --server
аргумент команды марионеточного агента.
Я обнаружил, что в /etc/puppet/puppet.conf
для решения случая, когда при регенерации сертификатов "по книге" по-прежнему возникает ситуация, описанная в Q:
[master]
certname=masterhost.domain.com
[agent]
certname=agenthost.domain.com
(где masterhost.domain.com
это полное доменное имя кукловода и agenthost.domain.com
то же самое для агента)
ИМО, это довольно ясный способ убедиться, что марионетка знает, какое имя для мастера, а какое для агента в случае, если оба работают на одном хосте, особенно если только что установили server=masterhost.domain.com
Казалось, этого недостаточно, чтобы избежать конфликтов.
Я не нашел предлагаемого решения добавления DN кукловода в /etc/hosts
(У меня уже был псевдоним DNS), поэтому я не могу сказать, помогло бы это в моем случае.