4.2. 使用 Puppet 为负载均衡配置具有默认 SSL 证书的 Capsule 服务器
下面的部分论述了如何配置使用默认 SSL 证书通过 Puppet 进行负载均衡的 Capsule 服务器。
如果在 Satellite 配置中使用 Puppet,您必须完成以下步骤:
配置 Capsule 服务器以生成和签名 Puppet 证书
仅对您要配置 Capsule 服务器的系统完成此流程,以为您配置用于负载平衡的所有其他 Capsule 服务器生成和签署 Puppet 证书。在此流程示例中,此 Capsule 服务器的 FQDN 是 evince -ca.example.com。
在 Satellite 服务器上,为配置 Capsule 服务器以生成和签署 Puppet 证书的系统生成 Katello 证书:
# capsule-certs-generate \ --foreman-proxy-fqdn capsule-ca.example.com \ --certs-tar "/root/capsule-ca.example.com-certs.tar" \ --foreman-proxy-cname loadbalancer.example.com为安装 Capsule 服务器证书保留示例
satellite命令的副本,该命令由其输出。-installer将证书存档文件从 Satellite 服务器复制到 Capsule 服务器:
# scp /root/capsule-ca.example.com-certs.tar \ root@capsule-ca.example.com:capsule-ca.example.com-certs.tar在
satellite-installer命令中获取的 satellite-installer 命令中附加以下选项:--certs-cname "loadbalancer.example.com" \ --puppet-dns-alt-names "loadbalancer.example.com" \ --puppet-ca-server "capsule-ca.example.com" \ --foreman-proxy-puppetca "true" \ --puppet-server-ca "true" \ --enable-foreman-proxy-plugin-remote-execution-ssh在 Capsule 服务器上,输入
satellite-installer命令,例如:# satellite-installer --scenario capsule \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule-ca.example.com" \ --foreman-proxy-oauth-consumer-key "oauth key" \ --foreman-proxy-oauth-consumer-secret "oauth secret" \ --certs-tar-file "capsule-ca.example.com-certs.tar" \ --puppet-server-foreman-url "https://satellite.example.com" \ --certs-cname "loadbalancer.example.com" \ --puppet-dns-alt-names "loadbalancer.example.com" \ --puppet-ca-server "capsule-ca.example.com" \ --foreman-proxy-puppetca "true" \ --puppet-server-ca "true" \ --enable-foreman-proxy-plugin-remote-execution-script \ --foreman-proxy-content-puppet true \ --enable-puppet \ --puppet-server true \ --puppet-server-foreman-ssl-ca /etc/pki/katello/puppet/puppet_client_ca.crt \ --puppet-server-foreman-ssl-cert /etc/pki/katello/puppet/puppet_client.crt \ --puppet-server-foreman-ssl-key /etc/pki/katello/puppet/puppet_client.key在 Capsule 服务器上,停止 Puppet 服务器:
# puppet resource service puppetserver ensure=stopped为您配置的所有其他 Capsule 服务器生成 Puppet 证书,但您配置 Puppet 证书的第一个系统除外:
# puppetserver ca generate --certname capsule.example.com \ --subject-alt-names loadbalancer.example.com --ca-client此命令在将 Capsule 服务器配置为为 Puppet 证书签名的系统中创建以下文件:
-
/etc/puppetlabs/puppet/ssl/certs/ca.pem -
/etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem -
/etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem -
/etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem
-
恢复 Puppet 服务器:
# puppet resource service puppetserver ensure=running
为负载均衡配置剩余 Capsule 服务器
在每个胶囊式服务器上完成此流程,不包括您配置 Capsule 服务器以签署 Puppet 证书的系统。
在 Satellite 服务器上,为 Capsule 服务器生成 Katello 证书:
# capsule-certs-generate \ --foreman-proxy-fqdn capsule.example.com \ --certs-tar "/root/capsule.example.com-certs.tar" \ --foreman-proxy-cname loadbalancer.example.com为安装 Capsule 服务器证书保留示例
satellite命令的副本,该命令由其输出。-installer将证书存档文件从 Satellite 服务器复制到 Capsule 服务器:
# scp /root/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar在 Capsule 服务器上安装
puppetserver软件包:# satellite-maintain packages install puppetserver在 Capsule 服务器上,为 puppet 证书创建目录:
# mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \ /etc/puppetlabs/puppet/ssl/private_keys/ \ /etc/puppetlabs/puppet/ssl/public_keys/在 Capsule 服务器上,从您配置 Capsule 服务器的系统中复制此 Capsule 服务器的 Puppet 证书,以签署 Puppet 证书:
# scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/certs/ca.pem \ /etc/puppetlabs/puppet/ssl/certs/ca.pem # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem \ /etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem \ /etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem \ /etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem在 Capsule 服务器上,将目录所有权改为 user
puppet、grouppuppet并设置 SELinux 上下文:# chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/ # restorecon -Rv /etc/puppetlabs/puppet/ssl/在
satellite-installer命令中获取的 satellite-installer 命令中附加以下选项:--certs-cname "loadbalancer.example.com" \ --puppet-dns-alt-names "loadbalancer.example.com" \ --puppet-ca-server "capsule-ca.example.com" \ --foreman-proxy-puppetca "false" \ --puppet-server-ca "false" \ --enable-foreman-proxy-plugin-remote-execution-ssh在 Capsule 服务器上,输入
satellite-installer命令,例如:# satellite-installer --scenario capsule \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "oauth key" \ --foreman-proxy-oauth-consumer-secret "oauth secret" \ --certs-tar-file "capsule.example.com-certs.tar" \ --puppet-server-foreman-url "https://satellite.example.com" \ --certs-cname "loadbalancer.example.com" \ --puppet-dns-alt-names "loadbalancer.example.com" \ --puppet-ca-server "capsule-ca.example.com" \ --foreman-proxy-puppetca "false" \ --puppet-server-ca "false" \ --enable-foreman-proxy-plugin-remote-execution-ssh