web-dev-qa-db-ja.com

構成のアベイラビリティーゾーンでLandscapeのOpenstackデプロイメントが失敗する

現在のランドスケープの「OpenStack Beta」オプションを使用して、MAASセットアップにOpenStackをデプロイします。 「アベイラビリティーゾーンの設定」で1回失敗すると、98%完了します。私の設定ではKVM、Open vSwitchを使用し、現在、オブジェクトストレージとブロックストレージの両方にCephを使用しています。ランドスケープマシンで/ var/log/landscape/job-handler-1.logを見ると、以下に関する100以上のエラーが表示されます。

2015-03-05 21:18:38 '_get_nova_info'の情報ルートRetryingCallが失敗し、さらに103回試行されました:2015-03-05 21:18:38情報ルートトレースバック::4つのnova-computeユニットがありません
/usr/lib/python2.7/threading.py:783:__ bootstrap
/usr/lib/python2.7/threading.py:810:__ bootstrap_inner
/usr/lib/python2.7/threading.py:763:run
--- <ここで例外をキャッチ> ---
/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py:191:_worker
/usr/lib/python2.7/dist-packages/twisted/python/context.py:118:callWithContext
/usr/lib/python2.7/dist-packages/twisted/python/context.py:81:callWithContext
/usr/lib/python2.7/dist-packages/storm/twisted/transact.py:76:_wrap
/opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py:751:_get_nova_info


NOTE:デバッグ用の印刷ステートメントを追加したため、jobs.pyの行番号はオフになっています。行番号#741の近くの_get_nova_info()関数でのアサートです(メモリが提供される場合)。はい、信頼のためにランドスケープPPAから現在のランドスケープの最新バージョンを使用しています。

だから私は/ opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py_ get_nova_info()nova_compute_hostnamesの長さを出力する関数と、zero。そこで、/ opt/canonical/landscape/canonical/landscape/model/openstack/region.py 'sget_nova_compute_hostnames()そしてself.juju_environment.get_computer_ids()。count()zeroそこで、self.juju_environment.has_computers()への呼び出しを追加し、false。次にself.juju_environment.get_juju_home()を実行し、/ var/lib/landscape/juju-homes/20。 (はい、これはランドスケープボックスの2回目の再構築での20回目の試みです。しばらくの間これに取り組んでいます)。それで、私は上記のjuju homeを利用してjuju statusを走らせ、すべてがうまく見えました。 5つのすべてのマシンとサービスが開始され、保留状態またはエラー状態はありません。 (4つのnova-computeノードを含む)アイデアはありますか?私は、ランドスケープ、MAAS、JUJU、およびpythonに多少慣れていないため、デバッグが少し遅くなります。


更新1:

リクエストに応じて、2つのログを取得しました(ただし、私の家は#23です) juju status および broker.log 。下のbroker.logのスニペットごとに、私の問題が何であるかがわかったと思います。 (そこに私を向けてくれたdpbに感謝します)私のMAASマシンは私のランドスケープLXCにDHCPアドレスを提供していますが、私のランドスケープLXCはMAASによってプロビジョニングされていないため、MAAS制御DNSにはありません。したがって、プロビジョニングされたマシンは、名前でランドスケープサーバーに接続できません。

それで関連する質問に導かれますが、プロビジョニングされていない(またはMAASの制御下にある)マシンでDNSをMAASに自動更新させる良い方法はありますか?そうでない場合は、DHCP範囲外の静的IPを提供し、DNSを手動で設定する必要があります。

2015-03-06 17:09:50,665 INFO [MainThread] Brokerはconfig /etc/landscape/client.confで開始しました
2015-03-06 17:09:52,382 INFO [MainThread] https:// landscape/message-system で緊急メッセージ交換を開始しています。
2015-03-06 17:09:52,389エラー[PoolThread-twisted.internet.reactor-1] https:// landscape/message-system でのサーバーへの接続エラー。
トレースバック(最新の通話は最後):
ファイル "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py"、行71、交換
message_api)
ファイル「/usr/lib/python2.7/dist-packages/landscape/broker/transport.py」、45行目、_curl
headers = headers、cainfo = self._pubkey、c​​url = curl))
ファイル「/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py​​」、109行目、フェッチ
raise PyCurlError(e.args [0]、e.args 1
PyCurlError:エラー6:ホストを解決できませんでした:風景
2015-03-06 17:09:52,390 INFO [MainThread]メッセージ交換に失敗しました。
2015-03-06 17:09:52,391情報[メインスレッド]メッセージ交換は0.01秒で完了しました。


更新2:

OpenStack/Landscapeの機能を示すために6台のマシン(5つのノードと1つのコントローラー)しか与えられず、ランドスケープに専用のマシンを使用できないため、セットアップは少し制限されています。私は landscape-server-quickstart をMAASコントローラーで LXC で使用していたので、すぐに吹き飛ばして、最初からやり直すことができます。

そのため、ランドスケープのセットアップを吹き飛ばし、LXCを静的IPに設定してから、ランドスケープサーバーの静的DNSエントリを持つようにDNS(MAASによって制御される)を変更しました。次に、上記のlandscape-server-quickstartメソッドを使用して、LXCにLandscape Dedicated Serverをインストールしました。

この再インストールの後(主にすべてのデバッグの混乱を一掃するため)、ついに横向きにOpenStackをインストールすることができました。ありがとう。

8
Master5597

「N nova-computeユニットがありません」というメッセージは、ランドスケープに戻って登録されたランドスケープクライアントエージェントに関するものです。欠落しているユニットの/var/log/landscape/broker.logを確認してください。

更新:

正しく識別したように、LDS(Landscape Dedicated Server)が、主にネットワークルーティングとDNSが原因で、OpenStackが存在する同じMAASにインストールされている場合、最もスムーズに動作します。ただし、ネットワーク間のルートなどの有効なトポロジには無数のバリエーションが存在します。

試すべき事柄に関するいくつかの提案は、それらをすべて読んでください。最後に、展開トポロジを決定する必要があります。

  • テストのために、LDSをopenstackと同じMAASに展開します-動作するかどうかを確認するだけです。 openstack-install ツール、または landscape-dense-maas juju-quickstartのバンドルを直接使用して、これを容易にします。

  • あなたが述べたように、クライアントはLDSに到達できる必要があります。 IPを使用してLDSがデプロイされている場所にルーティングできる場合は、openstackインストールを破棄し、Apacheサーバー名の設定を変更して再試行できます。 juju set Apache2 servername=IP_ADDRESS。これを実行した後、juju debug-logに従って、すべてが正常に表示されることを確認し、そのURLでLDS GUIを参照できることを確認します https:// IP_ADDRESS / URL。

4
dpb