web-dev-qa-db-ja.com

風景に報告しないコンピューター

Openstack-installerでOpenstackをインストールした後、Landscapeを使用していました。しばらくして、すべてを再起動し、jujuといくつかの苦労をした後( juju-core 1.20.xでの再起動後、Landscapeは実行されません )、LandscapeはOpenstackと同様に再び実行されます。

問題は、Landscapeに報告しているコンピューターがないことです。 5分ごとに「[Landscape Alert] 18台のコンピューターが過去5分間にLandscapeに接続していません」という件名のメールを受信します稼働しています。

Openstackでも深刻な問題に直面しています(新しいインスタンスの起動、バックアップボリュームなど)。問題は関連していると推測します。

3
Sacha Yunusic

元の質問へのコメントを介したデバッグセッションの後、問題が何であるかがわかりました。

自己署名証明書を使用する場合、Apache2チャームには、わずか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'_を実行します(このステップに関するバグを報告します:必要ではないはずですが、今はそうです)

次に、この新しい証明書についてクライアントに伝える必要があります。クライアントは、landscape/0ユニットに存在する別のjuju環境で起動しているため、これは少し複雑です。次の手順を実行します:

  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. Landscape/0にログイン:_juju ssh landscape/0_
  6. ランドスケープユーザーシェルを変更します:_Sudo chsh -s /bin/bash landscape_
  7. 横長になる:_Sudo -u landscape -i_
  8. クラウドジュジュ環境を指す:export JUJU_HOME=/var/lib/landscape/juju-homes/$(ls -1t /var/lib/landscape/juju-homes/|head -n 1)
  9. これを実行して、jujuがその環境で動作していることを確認します:_juju status_。多くのOpenStackサービスが表示されるはずです
  10. 新しい証明書についてランドスケープクライアントに伝えます:juju set landscape-client ssl-public-key="base64:$(cat /tmp/Apache2.cert|base64)"
  11. 静かになるまで_juju debug-log_の出力を監視します
  12. どこでもランドスケープクライアントを再起動します:_juju run --service landscape-client 'Sudo service landscape-client restart'_
  13. 上記のコマンドが、サポートされていない下位サービスに関する何かで失敗する場合は、代わりにこれを実行します:_juju run --all 'Sudo service landscape-client restart'_

クライアントにログインし、broker.logファイルをtail -fして、SSLエラーが続くかどうかを確認できます。

5