计算机未向景观报告

计算机未向景观报告

使用 openstack-installer 安装 Openstack 后,我可以使用 Landscape。经过一段时间,重新启动所有程序,以及与 juju 进行一些斗争之后 (使用 juju-core 1.20.x 重启后 Landscape 无法运行)、Landscape 再次运行,Openstack 也是如此。

问题是没有计算机向 Landscape 报告。我每 5 分钟收到一封电子邮件,主题为“[Landscape 警报] 过去 5 分钟内有 18 台计算机未联系 Landscape“,即使所有服务器都已启动并正在运行。

我在 Openstack 上也遇到了严重的问题(无法启动新实例、备份卷等),我猜测这个问题是相关的。

答案1

通过对原始问题的评论进行调试后,我们发现了问题所在。

当使用自签名证书时,apache2 charm 有一个错误,它会生成有效期仅为 30 天的证书。

发生的事情是它已过期。这个问题已在新版本的 charm 中得到修复,因此我们将升级到该版本并触发新证书生成。

请按照以下步骤升级charm并重新生成证书:

  1. 跑步juju ssh apache2/0 'sudo rm -f /etc/ssl/certs/apache2.cert /etc/ssl/private/apache2.key /etc/ssl/certs/landscape_server_ca.crt'
  2. 运行juju upgrade-charm apache2。这将升级 charm,新的 charm 一旦发现没有证书(在第一步中删除),就会生成一对新的证书。
  3. 观察输出juju debug-log直到它平静下来。
  4. 运行juju ssh apache2/0 'sudo service apache2 restart'(我将对此步骤提交错误报告:它本来不应该是必需的,但现在是需要的)

现在我们需要告诉客户端这个新证书。这有点棘手,因为客户端正在 Landscape/0 单元上的另一个 Juju 环境中运行,类似 Inception。请按照以下步骤操作:

  1. 获取新证书:juju scp apache2/0:/etc/ssl/certs/apache2.cert .
  2. 确保权限为 0644:chmod 0644 apache2.cert
  3. 确认其将于 10 年后过期:openssl x509 -in apache2.cert -noout -enddate
  4. 将其上传至landscape/0:juju scp apache2.cert landscape/0:/tmp
  5. 登录到景观/0:juju ssh landscape/0
  6. 更改景观用户 shell:sudo chsh -s /bin/bash landscape
  7. 變成景觀:sudo -u landscape -i
  8. 指向云juju环境:export JUJU_HOME=/var/lib/landscape/juju-homes/$(ls -1t /var/lib/landscape/juju-homes/|head -n 1)
  9. 运行此命令以确认 juju 在该环境中正常运行:juju status。您应该会看到很多 OpenStack 服务
  10. 告诉 Landscape 客户端有关新证书​​的信息:juju set landscape-client ssl-public-key="base64:$(cat /tmp/apache2.cert|base64)"
  11. 观察输出,juju debug-log直到它安静下来
  12. 在所有地方重启 Landscape 客户端:juju run --service landscape-client 'sudo service landscape-client restart'
  13. 如果上述命令失败,提示下属服务不受支持,请运行以下命令:juju run --all 'sudo service landscape-client restart'

您可以登录客户端并 tail -f broker.log 文件,查看 SSL 错误是否仍然存在。

相关内容