インスタンスでクラウド初期化が失敗する

インスタンスでクラウド初期化が失敗する

Autopilot Installer / MAAS を使用して Ubuntu Openstack をセットアップしました。VM を起動しようとすると、cloud-init がメタデータの取得に失敗します。インスタンス ログ (一部) を以下に示します。

cloud-init-nonet[25.04]: 静的ネットワークが起動しました
 * ネットワークデバイスの設定を開始しています[74G[ OK ]
Cloud-init v. 0.7.5 は、2015 年 3 月 20 日金曜日 16:43:33 +0000 に「init」を実行しています。25.26 秒増加しました。
ci-info: +++++++++++++++++++++++++++++ネットデバイス情報++++++++++++++++++++++++++++++
ci 情報: +--------+------+--------------+---------------+-------------------+
ci-info: | デバイス | アップ | アドレス | マスク | Hw-アドレス |
ci 情報: +--------+------+--------------+---------------+-------------------+
ci情報: |見よ |本当です | 127.0.0.1 | 255.0.0.0 | 。 |
ci 情報: | eth0 | True | 192.168.1.21 | 255.255.255.0 | fa:16:3e:ab:ac:16 |
ci 情報: +--------+------+--------------+---------------+-------------------+
ci-info: +++++++++++++++++++++++++++++++++ルート情報++++++++++++++++++++++++++++++++
ci 情報: +-------+-------------+----------+---------------+----------+-------+
ci-info: | ルート | 宛先 | ゲートウェイ | Genmask | インターフェース | フラグ |
ci 情報: +-------+-------------+----------+---------------+----------+-------+
ci 情報: | 0 | 192.168.1.0 | 0.0.0.0 | 255.255.255.0 | eth0 | U |
ci 情報: +-------+-------------+----------+---------------+----------+-------+
2015-03-20 16:43:33,409 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [0/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:34,422 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [1/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:35,431 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [2/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:36,435 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [3/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:37,440 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [4/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:38,444 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [5/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:40,449 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [7/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:42,455 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [9/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:44,460 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [11/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:46,466 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [13/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:48,472 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [15/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:51,484 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [18/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:54,491 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [21/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:43:57,503 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [24/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:00,520 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [27/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:03,541 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [30/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:07,556 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [34/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:11,569 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [38/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:15,580 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [42/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:19,594 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [46/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:23,607 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [50/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:28,622 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [55/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:33,641 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [60/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:38,670 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [65/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:43,690 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [70/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:48,710 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [75/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:44:54,726 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [81/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:00,741 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [87/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:06,757 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [93/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:12,770 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [99/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:18,790 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [105/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:25,805 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [112/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:32,830 - url_helper.py[警告]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' の呼び出しに失敗しました [119/120 秒]: 要求エラー [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 101] ネットワークに到達できません)]
2015-03-20 16:45:39,843 - DataSourceEc2.py[CRITICAL]: 126 秒後に ['http://169.254.169.254/2009-04-04/meta-data/instance-id'] からの md を諦めます
2015-03-20 16:45:39,855 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [0/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:40,865 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [1/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:41,879 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [2/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:42,884 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [3/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:43,889 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [4/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:44,894 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [5/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:46,900 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [7/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:48,912 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [9/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:50,918 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [11/120s]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:52,924 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [13/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:54,930 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [15/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:45:57,943 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [18/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:46:00,956 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [21/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]
2015-03-20 16:46:03,970 - url_helper.py[警告]: 'http://192.168.1.20//latest/meta-data/instance-id' の呼び出しに失敗しました [24/120 秒]: 要求エラー [HTTPConnectionPool(host='192.168.1.20', port=80): url: //latest/meta-data/instance-id で最大再試行回数を超えました (原因: [Errno 111] 接続が拒否されました)]

また、IP が 169.254.169.254 から 192.168.1.20 (192.x は DHCP エージェント IP) に変更されたことも興味深い点です。

どこから始めればよいか、何かアイデアはありますか?

答え1

マシンが実際にリージョン コントローラー メタデータ サーバーにアクセスできるように、クラスター コントローラーが正しく構成されていることを確認する必要があります。これを行うには、次の操作を実行します。

sudo dpkg-reconfigure maas-cluster-controller

また、リージョン コントローラーの IP アドレスを次の形式で入力する必要があります。

http://<ip-address>/MAAS

答え2

私の場合 (Ubuntu Juju を使用した新規インストール)、問題は、Neutron がメタデータ サーバーの IP アドレスを間違って設定して誤っていたことでした。

これはいい:http://techbackground.blogspot.ie/2013/06/metadata-via-dhcp-namespace.html

それは私に次のことを教えてくれました:

root@neutron:/etc/neutron# cat metadata_agent.ini 
...
nova_metadata_ip = 192.168.100.151
nova_metadata_port = 8775
...

nova_metadata_ip を修正し、Neutron メタデータ サービスを再起動すると、問題は解決しました。

答え3

8 ノードのデプロイメント (コントローラー 3 台、ロギング 1 台、コンピューティング 4 台) でも同様の問題が発生しました。テナント ネットワークで作成されたインスタンスは、メタデータ エージェント サービス経由で必要な SSH キーがインストールされていないため、ログインできませんでした。nova コンソール ログには、テナント ネットワークの Neutron ルーター ゲートウェイ (192.168.227.1) 上のメタデータ エージェント サービスへのアクセス試行が失敗したことが示されていました。Neutron ルーターにログインしてインスタンスを arping すると、インスタンスは動作し始めます。

コンピューティング ノードでパケット キャプチャを実行すると、インスタンスが Neutron ゲートウェイ 192.168.227.1 に ARP 要求を送信していることがわかりました。返された MAC は Neutron MAC ではなく、Cisco MAC でした。トラフィックがその Cisco デバイス (メタデータ サービスが存在しない) にルーティングされるため、メタデータ アドレスへの要求は失敗しました。

提案された解決策は、192.168.227.1 が設定された SVI が存在する可能性を確認し、そのアドレスは Neutron ルーター上で設定する必要があるため、それを削除するというものでした。

metadata_agent.ini ファイルを編集することは回避策ですが、これらの値は openstack_user_config.yml ファイルから取得されるため、これを「修正」として使用することは強く警告します。そこに正しく設定されていれば、.ini ファイルのデフォルト値で構成されたとおりに動作するはずです。外部エンドポイントをテストするために .ini ファイルの値を変更したところ、インスタンスにログインできるようになりましたが、テナント ゲートウェイ IP が重複するという根本的な問題は解決されず、最終的に修正する必要があった問題も解決されませんでした。

答え4

私のVultr VPSでも同様の問題が発生しました。デバッグ後、VPSからどのIPv4アドレスにもpingできないことがわかりました。IPtablesのINPUTのポリシーはDROPです。次のコマンドを実行すると、ping機能が正常に動作し、cloud-initが正しく実行されます。

iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 

詳細はこちらhttps://serverfault.com/questions/356282/cannot-ping-outside-network-with-these-ip-rules

この問題をデバッグするには、まず を使用してip route show | grep 169.254.169.254ゲートウェイ アドレスを取得することをお勧めします。次に、ゲートウェイへの接続を確認します。接続できない場合は、ファイアウォールを無効にしてみてください。

関連情報