Например. ami-00000073 используется в качестве идентификатора изображения. Как найти связанное с ним имя изображения?
Ваш вопрос немного неясен. Каждое изображение в OpenStack содержит:
95e52709-0990-4f52-b192-2ba2c0fa6f7f
Поскольку ваш пример не является ни целым числом, ни UUID, он должен быть отображаемое имя. Если вы можете предоставить дополнительную информацию (например, «когда я запускаю эту команду, я вижу этот вывод; как мне преобразовать этот вывод в эту другую информацию, которая мне нужна», показывая оба вывода команд, которые вы вводите), мы можем предоставить лучший ответ.
Как правило, вы можете использовать либо nova image-*
команды для взаимодействия с изображениями или glance
команда. Чтобы просмотреть список доступных изображений, используйте nova
:
nova image-list
Или используя glance
:
glance index
Вы можете получить подробную информацию о конкретном изображении, используя nova image-show
или glance show
, что даст вам что-то вроде этого:
$ glance show f66ea2c4-21f2-4a5e-ad8f-9af6d5f8b9d1
URI: http://10.1.1.61:9292/v1/images/f66ea2c4-21f2-4a5e-ad8f-9af6d5f8b9d1
Id: f66ea2c4-21f2-4a5e-ad8f-9af6d5f8b9d1
Public: Yes
Protected: No
Name: CentOS 6 x86_64
Status: active
Size: 1073741824
Disk format: raw
Container format: bare
Minimum Ram Required (MB): 0
Minimum Disk Required (GB): 0
Owner: a1af2e48a97549b787959618998a52f7
То, о чем вы говорите, - это идентификатор AMI, который отличается от идентификатора изображения Glance, который является UUID стандартного формата в более новых версиях OpenStack.
AMI ID предоставляется для совместимости с cloud-init или другими инструментами при использовании уровня совместимости EC2. Доступ к нему осуществляется изнутри экземпляра путем запроса http://169.154.169.154/latest/meta-data/ami-id или извлечение ami-id
собственность от metadata.json
на диске конфигурации.
nova.api.ec2.ec2utils
предоставляет метод под названием image_ec2_id
:
def image_ec2_id(image_id, image_type='ami'):
"""Returns image ec2_id using id and three letter type."""
template = image_type + '-%08x'
try:
return id_to_ec2_id(image_id, template=template)
except ValueError:
#TODO(wwolf): once we have ec2_id -> glance_id mapping
# in place, this wont be necessary
return "ami-00000000"
Итак, AMI ID - это просто шестнадцатеричная версия числового идентификатора изображения S3 (а не UUID) изображения Glance. Насколько мне известно, это значение не отображается через какие-либо инструменты командной строки или серверные API, и его нужно запрашивать напрямую через вашу базу данных. Эти числовые сопоставления хранятся в nova.s3_images
:
mysql> SELECT s3_images.id, s3_images.uuid, images.name FROM nova.s3_images INNER JOIN glance.images ON s3_images.uuid = images.id WHERE images.id = 'd12a9b68-0194-4a88-b5dd-2de711dec05e';
+----+--------------------------------------+-------------------------+
| id | uuid | name |
+----+--------------------------------------+-------------------------+
| 73 | d12a9b68-0194-4a88-b5dd-2de711dec05e | coreos-stable-v20150728 |
+----+--------------------------------------+-------------------------+
1 row in set (0.00 sec)