![Puppet не может отправить факты Форману - «tlsv1 alert unknown ca»](https://rvso.com/image/658743/Puppet%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%84%D0%B0%D0%BA%D1%82%D1%8B%20%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BD%D1%83%20-%20%C2%ABtlsv1%20alert%20unknown%20ca%C2%BB.png)
Я недавно обновилКателлок2.2имастертеперь к1.8.1, поэтому где-то в обновлении появляется информация, что Марионетка теперь не может связаться с Форманом:
> [root@virt5 ~]# puppet agent --test info:
> Retrieving plugin <snipped>
> err: Could not retrieve catalog from remote server: Error 400 on
> SERVER: Failed when searching for node virt5: Failed to find virt5.
> via exec: Execution of '/etc/puppet/node.rb virt5' returned 1:
> warning: Not using cache on failed catalog err: Could not retrieve
> catalog; skipping run
При запуске той же команды на моем puppetmaster я вижу:
[root@foreman certs]# /etc/puppet/node.rb virt5
Не удалось отправить данные Foreman: SSL_connect вернул = 1 errno = 0 state = SSLv3 read server session ticket A: tlsv1 alert unknown ca
Я попытался скопировать/etc/pki/katello/certs/katello-default-ca.crtсертификат, используемый httpd для/etc/pki/ca-trust/source/anchors/а затем запустить update-ca-trust extract
, но, похоже, это не имело никакого значения.
Я уверен, что упускаю какую-то глупость, просто не уверен, что именно.
решение1
Одна из ошибок, которую я здесь вижу (она должна быть более ясна в документации), заключается в том, что вы полагаете, что Katello использует сертификаты Puppet, как Foreman, но это не так.
На хосте Foreman/Katello:
capsule-certs-generate --capsule-fqdn "mycapsule.example.com"\
--certs-tar "~/mycapsule.example.com-certs.tar"
Где mycapsule.example.com — ваш второй Puppet master.
Распакуйте этот tarball и скопируйте RPM-файл сертификата "puppet-client" на ваш Puppet master, а затем установите его.
Скопируйте несколько файлов:
cp /etc/pki/katello-certs-tools/certs/*-puppet-client.crt /etc/puppet/foreman.crt
cp /etc/pki/katello-certs-tools/private/*-puppet-client.key /etc/puppet/foreman.key
cd /etc/puppet
wget https://katello.mydomain.net/pub/katello-default-ca.crt
chown puppet /etc/puppet/foreman.{crt,key} /etc/puppet/katello*
Настройте ваш /etc/puppet/foreman.yaml следующим образом:
:url: "https://katello.mydomain.net"
:ssl_ca: "/etc/puppet/katello-default-ca.crt"
:ssl_cert: "/etc/puppet/foreman.crt"
:ssl_key: "/etc/puppet/foreman.key"
Надеюсь, это сработает.