未报告横向的计算机

在使用openstack-installer安装Openstack后,我使用了Landscape。 经过一段时间后,在重新启动所有内容之后,经过一些与juju的斗争( 使用juju-core 1.20.x重新启动后没有运行 ),Landscape再次运行,以及Openstack。

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

我也面临着Openstack上的严重问题(无法启动新实例,备份卷等),我的猜测是问题是相关的。

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

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

发生了什么事,它已经过期了。 这是在更新版本的魅力中修复的,所以我们要做的是升级到它并触发新的证书生成。

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

  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 。 这将升级魅力和新魅力,一旦它看到没有证书(在第一步中删除),将生成一对新的。
  3. 观察juju debug-log的输出,直到它安静下来。
  4. 运行juju ssh apache2/0 'sudo service apache2 restart' (我将提交一个关于此步骤的错误:它不应该被需要,但现在就是)

现在我们需要告诉客户这个新证书。 这有点棘手,因为客户端正在另一个juju环境中运行,该环境存在于landscape / 0单元上,类似于inception。 跟着这些步骤:

  1. 获取新证书: juju scp apache2/0:/etc/ssl/certs/apache2.cert .
  2. 确保权限为0644: chmod 0644 apache2.cert
  3. validation它从现在起10年后到期: openssl x509 -in apache2.cert -noout -enddate
  4. 上传到landscape / 0: juju scp apache2.cert landscape/0:/tmp
  5. 登录landscape / 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-client有关新证书​​的信息: juju set landscape-client ssl-public-key="base64:$(cat /tmp/apache2.cert|base64)"
  11. 观察juju debug-log的输出,直到它安静下来
  12. 在任何地方重启landscape-client: juju run --service landscape-client 'sudo service landscape-client restart'
  13. 如果上述命令失败并且某些部分关于不支持从属服务,请改为juju run --all 'sudo service landscape-client restart'juju run --all 'sudo service landscape-client restart'

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