Примеры практических решений с использованием интерфейса командной строки (CLI)

Изменение IP адреса, назначенного на порт инстанса

Примечание

Привязка IP адреса в Openstack осуществляется не к инстансу напрямую, а к порту который инстансу назначен. Поэтому, для изменения IP адреса по которому должен быть доступен инстанс, нужно произвести смену IP адреса для порта.

  • Используемые команды:

    • Показать свойства проекта
    openstack project show <ProjectName>
    
    где
    <ProjectName> - имя облачного проекта

    • Показать список портов для проекта
    openstack port list --project <ProjectID>
    
    где
    <ProjectID> - идентификатор облачного проекта

    • Удалить текущий фиксированный IP адрес порта
    openstack port set --no-fixed-ip <PortID>
    
    где
    <PortID> - идентификатор порта для которого будет измененено значение IP адреса

    • Назначить фиксированный IP адрес для порта
    openstack port set --fixed-ip subnet=<SubnetID>,ip-address=<IPaddress> <PortID>
    
    где
    <SubnetID> - идентификатор подсети из диапазона которой будет выделяться IP адрес
    <IPaddress> - IP адрес который будет назначен на порт
    <PortID> - идентификатор порта для которого будет назначен IP адрес
  • Исходные данные:

    • «demo» - имя проекта
    • 10.100.100.4 - текущий IP адрес
    • 10.100.100.8 - новый IP адрес, на который мы хотим изменить текущий
  • Порядок действий:

    1. Определить идентификатор проекта по имени проекта
    openstack project show demo
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description |                                  |
    | domain_id   | b90911e0cc464e4d83c04bed2febc37a |
    | enabled     | True                             |
    | id          | a84030ae422a4173b4d0e7495cda2581 |
    | is_domain   | False                            |
    | name        | demo                             |
    | parent_id   | b90911e0cc464e4d83c04bed2febc37a |
    +-------------+----------------------------------+
    
    • Значение в поле «id» (a84030ae422a4173b4d0e7495cda2581) - это наш идентификатор
    2. Получить список портов для проекта и их параметры
    $ openstack port list --project a84030ae422a4173b4d0e7495cda2581
    +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
    | ID                                   | Name | MAC Address       | Fixed IP Addresses                                                          | Status |
    +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
    ...
    | c9153547-e72a-4f20-8792-6f6574d5baff |      | fa:16:3e:a6:d0:0d | ip_address='172.16.0.3', subnet_id='17f8d13a-31cd-494d-a161-95e360ad3cd8'   | ACTIVE |
    | 27ad2d67-e35f-4b6f-877f-fdd36690d72f |      | fa:16:3e:22:93:a6 | ip_address='10.100.100.4', subnet_id='8e82d9b3-0757-4ddc-9cf7-c82f1024d277' | ACTIVE |
    ...
    +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
    
    • Выбираем необходимые нам данные:
    Значение «ID» (c95d4d1d-233b-4322-8b3a-d77df89b3bf1) — это наш <PortID>
    Значение  «ip_address» (10.100.100.4) - это наш <IPaddress>
    Значение  «subnet_id» (8e82d9b3-0757-4ddc-9cf7-c82f1024d277)  - это наш <SubnetID>
    
    3. Теперь, зная все необходимые данные мы:
    • Удаляем старое значение IP адреса для нашего порта

      openstack port set --no-fixed-ip 27ad2d67-e35f-4b6f-877f-fdd36690d72f
      
    • Назначаем нужный нам IP на порт

      openstack port set --fixed-ip subnet=8e82d9b3-0757-4ddc-9cf7-c82f1024d277,ip-address=10.100.100.8 27ad2d67-e35f-4b6f-877f-fdd36690d72f
      
    4. В свойствах порта или инстанса мы видим новый, назначенный нами IP адрес:
    $ openstack port list --project a84030ae422a4173b4d0e7495cda2581
    +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
    | ID                                   | Name | MAC Address       | Fixed IP Addresses                                                          | Status |
    +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
    ...
    | c9153547-e72a-4f20-8792-6f6574d5baff |      | fa:16:3e:a6:d0:0d | ip_address='172.16.0.3', subnet_id='17f8d13a-31cd-494d-a161-95e360ad3cd8'   | ACTIVE |
    | 27ad2d67-e35f-4b6f-877f-fdd36690d72f |      | fa:16:3e:22:93:a6 | ip_address='10.100.100.8', subnet_id='8e82d9b3-0757-4ddc-9cf7-c82f1024d277' | ACTIVE |
    ...
    +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
    

Удалится ли диск/диски при удалении инстанса?

Примечание

При создании инстанса есть возможность установить признак «Удалить диск при удалении инстанса» (по умолчанию - нет). Если признак установлен, то при удалении инстанса его диск/диски удалятся автоматически.

  • Для проверки используем команду «nova» из Openstack CLI:

    • Синтаксис команды
    nova show <INSTANCE-ID>
    
    где
    <INSTANCE-ID> - цифро-буквенный код для инстанса

    При этом будут показаны статусы delete_on_termination для каждого из дисков присоединённых к инстансу. Если статус «delete_on_termination - false» значит диск не удалится.

  • Пример выполнения команды и вывода для инстанса с тремя дисками:

    nova show 6e191f55-d55d-4a9c-9c23-b3f54fa508a7 | grep os-extended-volumes
    
    | os-extended-volumes:volumes_attached                 | [{"id": "71bd8e60-fe96-4676-95af-1fd69ad0f731", "delete_on_termination": false}, {"id": "dec6e381-243d-4f19-9d7d-37bfc2772b68", "delete_on_termination": false}, {"id": "6e8f3773-f0bc-47c1-a6c4-c42fb33335e6", "delete_on_termination": false}] |
    

Загрузка инстанса с загрузочного тома который имеет UEFI загрузчик

Примечание

В SIM-Cloud есть возможность мигрировать свой загрузочный диск имеющий UEFI загрузчик.

  • Чтобы инстанс с такого диска загрузился успешно, с помощью Openstack CLI, укажем что нужно использовать UEFI.

    • Синтаксис команды
    openstack volume set --image-property hw_firmware_type=uefi <volume ID>
    
    где
    <volume ID> - цифро-буквенный код для загрузочного дискового тома с UEFI

    После этого можно создавать и запускать инстанс с этого тома.

  • Обратная команда:

    openstack volume unset --image-property hw_firmware_type <volume ID>
    
    где
    <volume ID> - цифро-буквенный код для загрузочного дискового тома с UEFI