делает кто-либо знает, как на самом деле решить проблему Облака Ubuntu экземпляры VM в OpenStack, не бывшем способном импортировать открытые ключи из сервера метаданных API новинки со следующим сообщением:
2012-07-18 11:05:45,409 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [113/120s]: url error [[Errno 111] Connection refused]
2012-07-18 11:05:52,419 - DataSourceEc2.py[CRITICAL]: giving up on md after 120 seconds
Я нашел многочисленные упоминания о проблеме (например, здесь или здесь) и попытался повернуть это правило iptables вкл\выкл (использование iptables-сохраняют и iptables-применяются), но это не работает. Забавное правило, кажется:
$ iptables -t nat -L -v | grep -n3 169.254.169.254
48-
49-Chain nova-network-PREROUTING (1 references)
50- pkts bytes target prot opt in out source destination
51: 32 1920 DNAT tcp -- any any anywhere 169.254.169.254 tcp dpt:http to:128.131.172.155:8775
52- 0 0 DNAT udp -- any any anywhere sneezy.infosys.tuwien.ac.at udp dpt:1000 to:10.0.0.2:1194
53-
54-Chain nova-network-float-snat (1 references)
Есть ли любой хороший способ вручную отладить это, между прочим?
Исправление проблемы при развертывании «все в одном»
С помощью хороших людей на IRC-канале #openstack (zynzel, livemoon) мы решили это простым перезапуском nova-api:
sudo restart nova-api
Вы можете проверить, действительно ли сервер метаданных работает, выдав:
lsof -i:8775
с вашего узла контроллера или
nmap -sS -sV -O -P0 -p8773-8776 <controller_ip>
с помощью IP-адрес вашего контроллера и проверка того, что порт 8775 / tcp открыт и прослушивается.
Возможно, это проблема Dodai-deploy, поскольку nova-api необходимо установить после установки nova-compute для правильной инициализации сервера метаданных.
Устранение проблемы при многоузловом развертывании
Если вы запускаете развертывание с несколькими хостами и хотите использовать облачные экземпляры Ubuntu, которые извлекают открытые ключи с сервера метаданных, это необходимо в контроллере вашего контроллера. nova.conf:
multihost=True
enabled_apis=metadata,ec2,osapi_compute,osapi_volume
и это в nova.conf вашего вычислительного узла:
multi_host=True
enabled_apis=metadata
Без этого вы получите ошибки в выводе консоли вашего экземпляра (тест nova console-log) -instance) о невозможности доступа к серверу метаданных, и вы не сможете подключиться к ним по ssh.
Другое решение состоит в том, чтобы сообщить своему экземпляру, кто вы на Launchpad, через форму Dashboard с данными пользователя (или файл в терминале), чтобы он мог получить оттуда ваши открытые ключи. Синтаксис (не объясняется нигде, кроме как в , исходный код ):
#cloud-config
ssh_import_id: [your-launchpad-username]