LinuxCommandLibrary

exo-compute

Manage Exoscale compute instances

TLDR

Quickly create an Exoscale Compute resource (e.g., instance, Security Group, SKS cluster,...)

$ exo compute [resource_type] create [resource_name]
copy

List Exoscale Compute instance types
$ exo compute instance-type list
copy

Register a new SSH key that can be used to access Compute instances
$ exo compute ssh-key register [key_name] [public_key_file]
copy

Create a Compute instance with an ssh-key deployed on it
$ exo compute instance create [instance_name] [ssh_key_name]
copy

Register a new Compute instance template based on a Snapshot of a Compute instance (useful when you want to quickly create a replica of a Compute instance)
$ exo compute instance template register [template_name] --from-snapshot [snapshot_id]
copy

Add a new rule to an existing Security Group
$ exo compute security-group rule add [security_group_name|id] --description '[Allow SSH access]' --flow [ingress] --port [22] --network [0.0.0.0/0]
copy

Manage the services of an existing Network Load Balancer
$ exo compute load-balancer service add [load_balancer_name|id] [service_name] --port [service_port]
copy

SYNOPSIS

exo-compute [<global-options>] <subcommand> [<args>]

PARAMETERS

-h, --help
    Display help for the command

--debug
    Enable debug logging

--output, -o {table|json|yaml}
    Set output format

--zone ZONE
    Specify Exoscale zone (e.g., de-fra-1)

--profile PROFILE
    Use specific API profile

--json
    Force JSON output

--wait, -w
    Wait for operation completion

--async
    Run asynchronously

DESCRIPTION

exo-compute is a subcommand of the Exoscale CLI (exo) used to manage virtual compute instances (VMs) on the Exoscale Infrastructure-as-a-Service (IaaS) platform.

Exoscale, a European cloud provider emphasizing privacy and compliance (GDPR, Swiss data protection), offers scalable compute resources across multiple zones. With exo-compute, users can create, list, update, start, stop, reboot, resize, delete, and snapshot instances. It supports advanced features like instance pools for auto-scaling, anti-affinity groups for high availability, spot VMs for cost savings, custom templates, SSH key management, user data via cloud-init, and IPv6.

Key workflows include deploying from templates (e.g., Ubuntu, Windows), attaching block storage, configuring firewalls via security groups, and load balancers. Output formats include table, JSON, or YAML for scripting. Global options control zones, profiles, and verbosity.

Ideal for DevOps automation, CI/CD pipelines, and hybrid cloud setups. Requires API key authentication via exo account login. Part of a unified CLI covering storage, networking, DNS, and more. Open-source, written in Go for cross-platform use (Linux, macOS, Windows). Version 2+ introduced hierarchical subcommands and improved tab-completion.

CAVEATS

Requires Exoscale API credentials; rate limits apply; not for public clouds like AWS/GCP; zone-specific availability.

COMMON SUBCOMMANDS

server create/list/delete/start/stop/resize; pool create/list; template list

INSTALLATION

curl -sSL https://github.com/exoscale/cli/releases/latest/download/exo-Linux-x86_64.tar.gz | tar xz; sudo mv exo /usr/local/bin/
Or: brew install exoscale/tap/exo; pipx install exo-cli

EXAMPLE

exo-compute server create --name myvm --template ubuntu-22.04 --instance-type small --zone de-fra-1 --key mykey

HISTORY

Originated in Exoscale CLI v1 (2018, Python); rewritten in v2 (2021, Go) for performance and Bash/zsh completion; ongoing updates track Exoscale API v2 features like elastic VMs.

SEE ALSO

exo(1), exo-storage(1), exo-network(1), virsh(1), cloud-init(7)

Copied to clipboard