Некоторая дополнительная информация:
- Проблема наблюдается с Openstack Ussuri и Victoria.
- Эта проблема наблюдается с Ubuntu VM с одним интерфейсом во внешней сети openstack.
- Во время создания виртуальной машины cloud-init не может запрашивать метаданные, связанные с виртуальной машиной, из источника «http://169.254.169.254/openstack». Это приводит к тайм-ауту и инициализации с ключами по умолчанию. В ЖУРНАЛЕ запуска указано: «ПРЕДУПРЕЖДЕНИЕ не является источником метаданных».
Обходной путь — выполнить «жесткую загрузку» виртуальной машины. Во время «жесткой загрузки» файл журнала «/var/log/cloud-init.log» указывает, что добавлен маршрут, который, по-видимому, решает проблему. См. запись журнала 14:27:08,314 ниже, которая относится к началу «жесткой загрузки». 10.20.34.100 — это IP-адрес во внешней сети, который предоставляет метаданные.
ubuntu@внешний-сервер:/var/log$ grep "169.254.169.254" cloud-init.log
2022-01-06 14:25:33,037 - util.py[DEBUG]: разрешение URL: http://169.254.169.254 заняло 0,000 секунды
2022-01-06 14:25:33,037 - url_helper.py[DEBUG]: [0/1] открыть 'http://169.254.169.254/openstack' с помощью {'url': 'http://169.254.169.254/ openstack", "allow_redirects": True, "метод": "GET", "время ожидания": 10.0, "заголовки": {'User-Agent': "Cloud-Init/21.4-0ubuntu1~20.04.1"}} конфигурация
2022-01-06 14:25:43,050 - url_helper.py[DEBUG]: вызов 'http://169.254.169.254/openstack' не удался [10/-1 с]: ошибка запроса [HTTPConnectionPool(host='169.254.169.254' , порт = 80): превышено максимальное количество повторных попыток с URL-адресом: /openstack (вызвано ConnectTimeoutError (<urllib3.connection.HTTPConnection объект по адресу 0x7fa3b80d8a60>, «время ожидания подключения к 169.254.169.254 истекло. (время ожидания подключения = 10.0)'))]
06.01.2022, 14:25:43,050 — DataSourceOpenStack.py[DEBUG]: отказ от OpenStack md из ['http://169.254.169.254/openstack'] через 10 секунд
06.01.2022, 14:25:54,772 - util.py[DEBUG]: разрешение URL-адреса: http://169.254.169.254 заняло 10,014 секунды
2022-01-06 14:25:54,772 - url_helper.py[DEBUG]: [0/1] открыть 'http://169.254.169.254/openstack' с помощью {'url': 'http://169.254.169.254/ openstack", "allow_redirects": True, "метод": "GET", "время ожидания": 10.0, "заголовки": {'User-Agent': "Cloud-Init/21.4-0ubuntu1~20.04.1"}} конфигурация
2022-01-06 14:26:04,785 - url_helper.py[DEBUG]: вызов 'http://169.254.169.254/openstack' не удался [10/-1 с]: ошибка запроса [HTTPConnectionPool(host='169.254.169.254' , порт = 80): превышено максимальное количество повторных попыток с URL-адресом: /openstack (вызвано ConnectTimeoutError (<urllib3.connection.HTTPConnection объект по адресу 0x7fdefd568700>, «время ожидания подключения к 169.254.169.254 истекло. (время ожидания подключения = 10.0)'))]
06.01.2022, 14:26:04,785 — DataSourceOpenStack.py[DEBUG]: отказ от OpenStack md из ['http://169.254.169.254/openstack'] через 10 секунд
2022-01-06 14:27:08,314 - subp.py[DEBUG]: Выполняется команда ['ip', '-4', 'route', 'add', '169.254.169.254/32', 'через', '10.20.34.100', 'dev', 'ens3'] с разрешенными кодами возврата [0] (shell=False, capture=True)
2022-01-06 14:27:08,317 - util.py[DEBUG]: разрешение URL: http://169.254.169.254 заняло 0,000 секунды
2022-01-06 14:27:08,318 - url_helper.py[DEBUG]: [0/1] открыть 'http://169.254.169.254/openstack' с {'url': 'http://169.254.169.254/ openstack", "allow_redirects": True, "метод": "GET", "время ожидания": 10.0, "заголовки": {'User-Agent': "Cloud-Init/21.4-0ubuntu1~20.04.1"}} конфигурация
2022-01-06 14:27:08,930 - url_helper.py[DEBUG]: чтение с http://169.254.169.254/openstack (200, 105b) после 1 попытки
06.01.2022, 14:27:08,930 — DataSourceOpenStack.py[DEBUG]: использование источника метаданных: «http://169.254.169.254»
2022-01-06 14:27:08,930 - url_helper.py[DEBUG]: [0/6] открыть 'http://169.254.169.254/openstack' с помощью {'url': 'http://169.254.169.254/ openstack", "allow_redirects": True, "метод": "GET", "время ожидания": 10.0, "заголовки": {'User-Agent': "Cloud-Init/21.4-0ubuntu1~20.04.1"}} конфигурация
2
После перезагрузки возможен доступ по SSH с настроенными учетными данными.
Проблема может заключаться в скрипте cloud-init, который не добавляет маршрут к серверу метаданных во время первого cloud_init виртуальной машины.