我最近更新了卡特洛到2.2和领班现在1.8.1因此在升级过程中的某个地方似乎 Puppet 现在无法联系 Foreman:
> [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 读取服务器会话票证 A:tlsv1 警报未知 ca
我试图复制/etc/pki/katello/certs/katello-default-ca.crthttpd 使用的证书/etc/pki/ca-trust/source/anchors/然后运行update-ca-trust extract
,但这似乎没有什么区别。
我确信我忽略了一些愚蠢的事情,只是不确定那会是什么。
答案1
我在这里看到的一个错误(在文档中应该更清楚)是,您认为 Katello 像 Foreman 一样使用 Puppet 证书,但事实并非如此。
在 Foreman/Katello 主机运行:
capsule-certs-generate --capsule-fqdn "mycapsule.example.com"\
--certs-tar "~/mycapsule.example.com-certs.tar"
其中 mycapsule.example.com 是您的另一个 Puppet Master。
解压该 tarball 并将“puppet-client”证书 RPM 复制到 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"
希望这样可以达到目的。