LinuxCommandLibrary

nova

Manage OpenStack compute instances

TLDR

List VMs on current tenant

$ nova list
copy

List VMs of all tenants (admin user only)
$ nova list --all-tenants
copy

Boot a VM on a specific host
$ nova boot --nic net-id=[net_id] --image [image_id] --flavor [flavor] --availability-zone nova:[host_name] [vm_name]
copy

Start a server
$ nova start [server]
copy

Stop a server
$ nova stop [server]
copy

Attach a network interface to a specific VM
$ nova interface-attach --net-id [net_id] [server]
copy

SYNOPSIS

nova [global-options] <subcommand> [subcommand-options] [arguments]

Examples:
nova list
nova boot --flavor m1.tiny --image ubuntu-18.04 --key-name mykey my-instance
nova show <instance_id>

PARAMETERS

--debug
    Show debug output for the command execution, useful for troubleshooting API calls.

--os-auth-url <url>
    Authentication URL for the OpenStack Identity service (Keystone). This is typically set via environment variables.

--os-username <username>
    Username for authenticating with the OpenStack cloud. Commonly set via environment variables.

--os-password <password>
    Password for the specified username. Also frequently managed through environment variables.

--os-project-name <name>
    Project (formerly tenant) name for authentication. Usually sourced from an 'openrc' file or environment variables.

--os-region-name <name>
    Name of the region to use, especially relevant in multi-region OpenStack deployments. Typically set via environment variables.

--version
    Display the program's version number and exit.

-h, --help
    Show a help message for the nova client itself, or for a specific subcommand if provided (e.g., nova help boot).

DESCRIPTION

The nova command is the legacy command-line interface (CLI) for interacting with OpenStack Compute, known as Nova. Nova is the core service responsible for provisioning and managing virtual machines (instances) within an OpenStack cloud environment. This powerful command allows cloud administrators and users to perform a wide range of operations, including launching new instances, listing available images and "flavors" (instance sizes), managing SSH keypairs for secure access, allocating floating IPs, and controlling security groups to define network access rules.

While the more recent openstack unified CLI is now the recommended tool for managing OpenStack services, the nova client remains widely used due to its specific focus on compute functionalities and familiarity among long-time OpenStack users. It provides a direct, scriptable way to automate cloud infrastructure management tasks, offering granular control over compute resources.

CAVEATS

The nova client is a command-line interface tool and requires an operational OpenStack cloud environment to interact with. It heavily relies on proper authentication credentials, typically sourced from an 'openrc' file or environment variables (e.g., OS_AUTH_URL, OS_USERNAME). As a legacy client, its development has largely ceased in favor of the unified openstack client. Consequently, some newer Nova API features or functionalities might not be fully supported by the nova client and may necessitate the use of the openstack client or direct API calls. Installation often involves Python's package manager, pip (e.g., pip install python-novaclient).

ENVIRONMENT VARIABLES

The nova command relies heavily on environment variables for configuration, particularly for authentication. Users typically source an 'openrc' file provided by their OpenStack cloud to set variables like OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_PROJECT_NAME, and OS_REGION_NAME. This streamlines authentication and allows commands to be executed without explicitly passing these parameters each time.

SUBCOMMANDS

The functionality of the nova client is organized into various subcommands, each performing a specific set of operations. Common subcommands include list (to list instances), boot (to launch a new instance), show (to display details of an instance), delete (to terminate an instance), flavor-list (to list instance sizes), image-list (to list available images), and keypair-list (to list SSH keypairs). Users can get a full list of subcommands by running nova help.

HISTORY

The nova client originated as part of the early development of OpenStack, specifically designed to interact with the Compute (Nova) service, which was one of the foundational components of the cloud platform. As OpenStack grew and diversified with numerous services, a need arose for a unified command-line interface. This led to the development of the openstack client, which aims to provide a single entry point for managing all OpenStack services.

While the openstack client is now the primary and recommended tool, the nova client persists due to its historical significance, established user base, and the fact that it still effectively performs its core compute management tasks. Its usage has shifted from primary interaction to more specialized or legacy scripting scenarios.

SEE ALSO

openstack(1), glance(1), neutron(1)

Copied to clipboard