Консольные утилиты

TIONIX.Client расширяет консольную утилиту Openstack дополнительными командами.

Для получения списка доступных команд выполните:

openstack tnx --help

Примечание

По умолчанию отключен вывод сообщений с уровнем логирования WARNING и ниже. Для включения подробного вывода нужно выставить уровень логирования и запустить команду с флагом --verbose.

Сервис журналирования

Предоставляет API для получения истории действий над объектами Openstack.

  • Команда:

    tnx-journal-api
    
  • Имя службы systemd:

    tionix-journal-api.service
    
Аргументы утилиты
Наименование Описание Значение по умолчанию
--host IP-адрес, на котором будет запущен сервис. 0.0.0.0
--port Порт, на котором будет запущен сервис. 9360
--certfile Путь к файлу SSL-сертификата для защищенного соединения.  
--keyfile Путь к приватному ключу SSL-сертификата для защищенного соединения.  
--debug Аргумент позволяет запустить сервис в режиме DEBUG. False
--logfile Путь к файлу для логирования. /var/log/tionix/client/journal-api.log

Аудит API запросов службы Nova

Утилита получает уведомления о выполненных API запросах в службу Nova из очереди сообщений и сохраняет их в журнал действий.

  • Команда:

    tnx-journal-nova-listener
    
  • Имя службы systemd:

    tionix-journal-nova-listener.service
    
Аргументы утилиты
Наименование Описание Значение по умолчанию
--debug Аргумент позволяет запустить сервис в режиме DEBUG. False
--logfile Путь к файлу для логирования. /var/log/tionix/client/journal-nova-listener.log

Аудит API запросов службы Keystone

Утилита получает уведомления о выполненных API запросах в службу Keystone из очереди сообщений и сохраняет их в журнал действий.

  • Команда:

    tnx-journal-keystone-listener
    
  • Имя службы systemd:

    tionix-journal-keystone-listener.service
    
Аргументы утилиты
Наименование Описание Значение по умолчанию
--debug Аргумент позволяет запустить сервис в режиме DEBUG. False
--logfile Путь к файлу для логирования. /var/log/tionix/client/journal-keystone-listener.log

Аудит API запросов служб TIONIX

Утилита получает уведомления о выполненных API запросах в службы TIONIX из очереди сообщений и сохраняет их в журнал действий.

  • Команда:

    tnx-journal-listener
    
  • Имя службы systemd:

    tionix-journal-listener.service
    
Аргументы утилиты
Наименование Описание Значение по умолчанию
--debug Аргумент позволяет запустить сервис в режиме DEBUG. False
--logfile Путь к файлу для логирования. /var/log/tionix/client/journal-listener.log

Аутентификация в OpenStackClient

Для аутентификации используются глобальные аргументы утилиты Openstack.

Примечание

Аутентификационные аргументы утилит являются необязательными. Параметры принимают значения (по приоритету) из:

  • аргументов утилиты;
  • параметров в окружении, например OS_USERNAME;
  • конфигурационного файла /etc/tionix/tionix.yaml;
  • значений по умолчанию.
Аргументы команды Параметры среды Описание
--os-username OS_USERNAME Имя пользователя для авторизации в службе Keystone. Пример: --os-username admin.
--os-password OS_PASSWORD Пароль пользователя для авторизации в службе Keystone. Пример: --os-password password.
--os-auth-url OS_AUTH_URL URL для доступа в службу Keystone. Пример: --os-auth-url http://localhost:5000.
--os-project-name OS_PROJECT_NAME Имя проекта. Пример: --os-project-name admin.
--os-compute-service-name OS_COMPUTE_SERVICE_NAME Наименование службы Nova. Пример: --os-compute-service-name compute.
--os-compute-api-version OS_COMPUTE_API_VERSION Версия REST API Nova. Пример: --os-compute-api-version 2.
--os-project-domain-name OS_PROJECT_DOMAIN_NAME Доменное имя проекта. Пример: --os-project-domain-name default.
--os-user-domain-name OS_USER_DOMAIN_NAME Доменное имя пользователя. Пример: --os-user-domain-name default.

Для получения подробного описания аргументов выполните:

openstack --help

Вывод информации о лицензиях и о версиях установленных модулей

Команда:

openstack tnx modules list

Пример вывода:

openstack tnx modules list

+------------------------+-------------+---------------------+---------------------+----------------+
| Module name            | Version     | License start date  | License end date    | License status |
+------------------------+-------------+---------------------+---------------------+----------------+
| TIONIX.NodeControl     | 1.6.1.dev7  | 16.08.2016 14:29:21 | 28.11.2016 00:00:00 | Valid          |
| TIONIX.Monitor         | 1.6.1.dev4  | 16.08.2016 14:29:21 | 28.11.2016 00:00:00 | Valid          |
| TIONIX.VDI Server      | 1.6.1.dev5  | 16.08.2016 14:29:21 | 28.11.2016 00:00:00 | Valid          |
| TIONIX.Scheduler       | 1.6.1.dev5  | -                   | -                   | -              |
| TIONIX.Dashboard       | 1.6.1.dev17 | -                   | -                   | -              |
| TIONIX.Client          | 1.6.1.dev8  | -                   | -                   | -              |
+------------------------+-------------+---------------------+---------------------+----------------+

Примечание

Подробное описание доступно в разделе Лицензирование.

Получение списка плагинов

Утилита позволяет получить список плагинов службы Nova с возможностью фильтрации.

Команда:

openstack tnx extensions list

Пример вывода:

openstack tnx extensions list

+----+--------------------------+----------------------+--------------------------------+
|  # | Name                     | Alias                | Description                    |
+----+--------------------------+----------------------+--------------------------------+
|  1 | TnxPowerActions          | power-actions        | View a log of power actions    |
|    |                          |                      | for hypervisor.                |
|  2 | TnxVolumes               | tnx-cc-os-volumes    | Decorate os-volumes resource   |
|    |                          |                      | extension.                     |
|    |                          |                      | Adding os-volumes/action       |
|    |                          |                      | route.                         |
|    |                          |                      |                                |
|  3 | TnxHypervisorsExtension  | tnx-hypervisors      | Tionix Extension. Hypervisors  |
|  4 | TnxLicenses              | tnx-licenses         | Tionix Extension. licenses     |
|  5 | TnxMetrics               | tnx-metrics          | cloud stats extension          |
|  6 | TnxMonitor               | tnx-monitor          | Get info about Monitor.        |
|  7 | TnxNcPowerDevices        | tnx-nc-power-devices | Tionix Extension. Power        |
|    |                          |                      | devices                        |
|  8 | TnxNodeControl           | tnx-node-control     | Get info about Node Control.   |
|  9 | TnxHosts                 | tnx-os-hosts         | Decorator to os-hosts resource |
|    |                          |                      | extension. For adding ACTION   |
|    |                          |                      | to host                        |
| 10 | TnxServersExtension      | tnx-servers          |                                |
| 11 | TnxServersHostsExtension | tnx-servers-hosts    |                                |
| 12 | TnxServersSLAExtension   | tnx-servers-sla      |                                |
| 13 | TnxServersUsersExtension | tnx-servers-users    |                                |
| 14 | TnxSessionsExtension     | tnx-sessions         |                                |
| 15 | TnxTenantsExtension      | tnx-tenants          | Tionix Extension. Tenants      |
| 16 | TnxVDIServer             | tnx-vdi-server       | Get info about VDI Server.     |
+----+--------------------------+----------------------+--------------------------------+

Миграция виртуальной машины

Утилита позволяет мигрировать виртуальную машину. В случае, если виртуальная машина находится на эфемерном диске или нужно изменить тип корневого диска, создается новая виртуальная машина с переключением на нее дисков и сетевых интерфейсов.

Важно

  • Перед запуском утилиты требуется создать базу данных.
  • Виртуальная машина будет создана с пустым диском, содержимое корневого раздела не будет скопировано.
Аргументы команды Параметры среды Описание
<server>   Идентификатор виртуальной машины.
--os-username OS_USERNAME Имя пользователя для авторизации в службе Keystone. Пример: --os-username admin.
--os-user-domain-name OS_USER_DOMAIN_NAME Доменное имя пользователя. Пример: --os-user-domain-name default.
--os-password OS_PASSWORD Пароль пользователя для авторизации в службе Keystone. Пример: --os-password password.
--os-project-name OS_PROJECT_NAME Имя проекта. Пример: --os-project-name admin.
--os-project-domain-name OS_PROJECT_DOMAIN_NAME Доменное имя проекта. Пример: --os-project-domain-name default.
--os-auth-url OS_AUTH_URL URL для доступа в службу Keystone. Пример: --os-auth-url http://localhost:5000.
--db-host DB_HOST Хост, на котором запущена база данных.
--db-port DB_PORT Порт, на котором запущена база данных.
--db-name DB_NAME Название базы данных, в которой будут храниться записи о миграциях.
--db-username DB_USERNAME Пользователь базы данных.
--db-password DB_PASSWORD Пароль к базе данных.
--volume   Идентификатор диска и тип нового диска. Для указанного диска создается новый диск такого же размера, но с новым типом. Идентификатор и тип диска разделяются двоеточием. Для указания нескольких дисков нужно указать параметр несколько раз.
--root-volume-type   Тип диска для корневого раздела виртуальной машины. Необходим в случае, если корневой раздел виртуальной машины находится на эфемерном диске.
--retry   Повторная попытка миграции виртуальной машины.
--force-complete   Параметр для отмены ошибочной или незавершенной миграции и выставление ее как завершенной.
--revert   Выполнение отката миграции.
--debug   Включение уровня логирования DEBUG.
--log   Указание пути до файла логирования. По умолчанию логируется в /tmp/tnx_migrate_<id ВМ>.log.

Примеры

Миграция виртуальной машины

source env_vars.sh
tnx_migrate  --volume 51d24c2b-3f9c-4e44-b380-365ebbce413c:type1 --volume 4de35464-56c0-414c-a053-91277c3efd08:type1 855bbaad-f318-4452-8e1a-230fd04913a0
Migrating server 855bbaad-f318-4452-8e1a-230fd04913a0
Processing step 1/7: volume.create
Created volume: uuid=33c46b3d-0606-4ef9-891b-9049a410d3d4, name=root_disk, size=1, type=type1
Created volume: uuid=c1787901-3d6f-4c9a-be5a-192152824c84, name=test_disk, size=1, type=type1
Processing step 2/7: volume.rename
Renamed volume with uuid=51d24c2b-3f9c-4e44-b380-365ebbce413c from root_disk to root_disk-old.
Processing step 3/7: volume.detach
Detached volume with uuid=17a126e8-d5e7-499b-8c43-8bbdf2d6d519 from instance with uuid=855bbaad-f318-4452-8e1a-230fd04913a0
Detached volume with uuid=5bfc9335-f411-46fc-96ec-8d2b97c2d33f from instance with uuid=855bbaad-f318-4452-8e1a-230fd04913a0
Processing step 4/7: port.detach
Detached port with uuid=d0f70b38-6d06-49e8-96f5-2e66c8f0a869 from server with uuid=855bbaad-f318-4452-8e1a-230fd04913a0
Detached port with uuid=f457847e-8afe-415e-ab28-841c9259e02e from server with uuid=855bbaad-f318-4452-8e1a-230fd04913a0
Processing step 5/7: port.create
Created network port with uuid=adf2d267-ee2b-41f2-b2c1-0fe1ac9ad365
Created network port with uuid=ac51e84e-dd78-44a2-a0d0-c0e0699923ef
Processing step 6/7: server.create
Created new server with uuid=5be38c18-7883-4796-805d-05232bbc8293, name=test
Processing step 7/7: server.rename
Renamed server with uuid=855bbaad-f318-4452-8e1a-230fd04913a0 from test to test-old
Result:
instance_uuid:5be38c18-7883-4796-805d-05232bbc8293
root_volume:33c46b3d-0606-4ef9-891b-9049a410d3d4 type1
Attached volumes:
17a126e8-d5e7-499b-8c43-8bbdf2d6d519 -
5bfc9335-f411-46fc-96ec-8d2b97c2d33f type1
c1787901-3d6f-4c9a-be5a-192152824c84 type1

Попытка повторной миграции

source env_vars.sh
tnx_migrate  --retry 855bbaad-f318-4452-8e1a-230fd04913a0
Migrating server 855bbaad-f318-4452-8e1a-230fd04913a0
Processing step 1/7: volume.create
Skip processing volume 51d24c2b-3f9c-4e44-b380-365ebbce413c:type1
Skip processing volume 4de35464-56c0-414c-a053-91277c3efd08:type1
Processing step 2/7: volume.rename
Skip renaming volume 51d24c2b-3f9c-4e44-b380-365ebbce413c
Processing step 3/7: volume.detach
Skip detaching volume 17a126e8-d5e7-499b-8c43-8bbdf2d6d519.
Skip detaching volume 5bfc9335-f411-46fc-96ec-8d2b97c2d33f.
Processing step 4/7: port.detach
Skip detaching port d0f70b38-6d06-49e8-96f5-2e66c8f0a869.
Skip detaching port f457847e-8afe-415e-ab28-841c9259e02e.
Processing step 5/7: port.create
Skip creating port.
Skip creating port.
Processing step 6/7: server.create
Skip creating server.
Processing step 7/7: server.rename
Skip renaming server 855bbaad-f318-4452-8e1a-230fd04913a0
Result:
instance_uuid:5be38c18-7883-4796-805d-05232bbc8293
root_volume:33c46b3d-0606-4ef9-891b-9049a410d3d4 type1
Attached volumes:
17a126e8-d5e7-499b-8c43-8bbdf2d6d519 -
5bfc9335-f411-46fc-96ec-8d2b97c2d33f type1
c1787901-3d6f-4c9a-be5a-192152824c84 type1

Откат миграции

source env_vars.sh
tnx_migrate  --revert 855bbaad-f318-4452-8e1a-230fd04913a0
Reverting migration for server 855bbaad-f318-4452-8e1a-230fd04913a0
Reverting step 1/11: server.rename
Renamed server with uuid=855bbaad-f318-4452-8e1a-230fd04913a0 from test-old to test.
Reverting step 2/11: server.create
Deleted server with uuid=5be38c18-7883-4796-805d-05232bbc8293.
Waiting for server 5be38c18-7883-4796-805d-05232bbc8293 to be deleted.
Waiting for server 5be38c18-7883-4796-805d-05232bbc8293 to be deleted.
Waiting for server 5be38c18-7883-4796-805d-05232bbc8293 to be deleted.
Reverting step 3/11: port.create
Deleted port with uuid=ac51e84e-dd78-44a2-a0d0-c0e0699923ef.
Reverting step 4/11: port.create
Deleted port with uuid=adf2d267-ee2b-41f2-b2c1-0fe1ac9ad365.
Reverting step 5/11: port.detach
Attached port with uuid=a82bc556-8777-4a35-ac28-a75658fe051c to instance with uuid=855bbaad-f318-4452-8e1a-230fd04913a0.
Reverting step 6/11: port.detach
Attached port with uuid=dcefe3a1-a5aa-4956-bf7f-a07dc54eb8c2 to instance with uuid=855bbaad-f318-4452-8e1a-230fd04913a0.
Reverting step 7/11: volume.detach
Attached volume with uuid=5bfc9335-f411-46fc-96ec-8d2b97c2d33f to instance with uuid=855bbaad-f318-4452-8e1a-230fd04913a0. Mount point: /dev/vdb
Reverting step 8/11: volume.detach
Attached volume with uuid=17a126e8-d5e7-499b-8c43-8bbdf2d6d519 to instance with uuid=855bbaad-f318-4452-8e1a-230fd04913a0. Mount point: /dev/vdc
Reverting step 9/11: volume.rename
Renamed volume with uuid=51d24c2b-3f9c-4e44-b380-365ebbce413c from root_disk-old to root_disk
Reverting step 10/11: volume.create
Deleted volume with uuid=c1787901-3d6f-4c9a-be5a-192152824c84
Reverting step 11/11: volume.create
Deleted volume with uuid=33c46b3d-0606-4ef9-891b-9049a410d3d4