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

Клиент марионетки не подключается к мастеру - ошибка подключения SSL

Я установил мастер марионеток и агент на одном компьютере. При запуске клиента появляется следующее сообщение об ошибке.

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), поэтому я не могу сказать, помогло бы это в моем случае.