How to use the command nova (with examples)
- Linux
- December 25, 2023
The nova
command is a part of the OpenStack project that allows users to provision compute instances. It provides various functionalities such as managing virtual machines (VMs), starting and stopping servers, attaching network interfaces, and more. This article will illustrate different use cases of the nova
command with examples.
Use case 1: List VMs on current tenant
Code:
nova list
Motivation: The nova list
command is used to retrieve a list of VMs on the current tenant. This can be useful to check the status, availability, and other details of the VMs.
Explanation: The command nova list
fetches the list of VMs on the current tenant. It does not require any additional arguments.
Example output:
+--------------------------------------+---------------+--------+-------------------+
| ID | Name | Status | Networks |
+--------------------------------------+---------------+--------+-------------------+
| 3baff8a6-f7d2-42b9-8382-9a34a0a6783a | Test_VM_1 | ACTIVE | private=192.168.1.2|
| a8678be1-7a57-4b7d-8ee0-3e41c2b147dc | Test_VM_2 | SHUTOFF| private=192.168.1.3|
+--------------------------------------+---------------+--------+-------------------+
Use case 2: List VMs of all tenants (admin user only)
Code:
nova list --all-tenants
Motivation: The nova list --all-tenants
command is used by admin users to retrieve a list of VMs across all tenants. This can be helpful for monitoring purposes or when managing the entire cloud infrastructure.
Explanation: The --all-tenants
option in the nova list
command allows admin users to list the VMs of all tenants instead of just the current tenant.
Example output:
+--------------------------------------+---------------+--------+-------------------+
| ID | Name | Status | Networks |
+--------------------------------------+---------------+--------+-------------------+
| 3baff8a6-f7d2-42b9-8382-9a34a0a6783a | Test_VM_1 | ACTIVE | private=192.168.1.2|
| a8678be1-7a57-4b7d-8ee0-3e41c2b147dc | Test_VM_2 | SHUTOFF| private=192.168.1.3|
| c4532d83-31bb-4fb7-b8f6-4c12bc9a0ddd | Test_VM_3 | ACTIVE | private=192.168.1.4|
+--------------------------------------+---------------+--------+-------------------+
Use case 3: Boot a VM on a specific host
Code:
nova boot --nic net-id=net_id --image image_id --flavor flavor --availability-zone nova:host_name vm_name
Motivation: The nova boot
command is used to create and boot a new VM on a specific host. This can be useful when you want more control over the VM placement or if you want to distribute the workload across different hosts.
Explanation: In the given command, the arguments are as follows:
--nic net-id=net_id
: Specifies the network on which the VM should be connected.--image image_id
: Specifies the ID of the image to be used for the VM.--flavor flavor
: Specifies the flavor (size) of the VM.--availability-zone nova:host_name
: Specifies the host on which the VM should be placed.vm_name
: Specifies the desired name of the VM.
Example output:
+--------------------------------------+------+--------+------------+
| ID | Name | Status | Networks |
+--------------------------------------+------+--------+------------+
| 3baff8a6-f7d2-42b9-8382-9a34a0a6783a | VM_1 | ACTIVE | private=...|
+--------------------------------------+------+--------+------------+
Use case 4: Start a server
Code:
nova start server
Motivation: The nova start
command is used to start a server (VM) that is currently in a stopped or suspended state. This can be useful when you want to resume the operation of a server that was previously stopped.
Explanation: The nova start
command is used to start the server specified by the server
argument.
Example output: No output will be displayed if the server starts successfully.
Use case 5: Stop a server
Code:
nova stop server
Motivation: The nova stop
command is used to stop a running server (VM). This can be useful when you want to temporarily halt the operation of a server or when scaling down the infrastructure during low usage periods.
Explanation: The nova stop
command is used to stop the server specified by the server
argument.
Example output: No output will be displayed if the server stops successfully.
Use case 6: Attach a network interface to a specific VM
Code:
nova interface-attach --net-id net_id server
Motivation: The nova interface-attach
command is used to attach a network interface to a specific VM. This can be helpful when a VM needs to be connected to multiple networks or when adding additional network capabilities to the VM.
Explanation: In the provided command, the arguments are as follows:
--net-id net_id
: Specifies the ID of the network interface to be attached.server
: Specifies the name or ID of the VM to which the network interface should be attached.
Example output: No output will be displayed if the network interface attaches successfully.
Conclusion:
The nova
command is a powerful tool for managing compute instances in OpenStack. It provides various options to list VMs, start and stop servers, attach network interfaces, and more. By understanding these use cases and examples, users can effectively utilize the nova
command to manage their cloud infrastructure.