Консольные утилиты¶
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