Skip to main content

Overview

Hosts is where you build your cluster inventory --- the list of servers that form your cloud. Define which servers exist, their IP addresses, assign roles (controller, compute, storage), and set up SSH for remote configuration. Every server that participates in your cloud must be registered here before deployment can proceed.
Prerequisites
  • Bootstrap completed on the deployment server
  • IP addresses of all target servers
  • SSH credentials (username and password) for all target servers
  • Network connectivity between the deployment node and every target server

Deployment Modes

All-in-One (AIO)

Everything on one server. For labs, demos, and testing environments. XDeploy auto-detects the local hostname and IP address, then assigns all roles to localhost. No SSH configuration is required --- the deployment node is also the target.

Multi-Node Cluster

Production setup with separate servers for different roles. Supports high availability, horizontal scaling, and workload isolation. Each server is assigned one or more roles and connected via SSH for remote configuration management.

Node Roles

Every server in your cluster is assigned one or more roles that determine which services run on it. The following table describes each role and the services it hosts.
RolePurposeServices
ControllerCloud control planeXloud Identity, Xloud Dashboard, Xloud Compute API, Xloud Networking Server, MariaDB, RabbitMQ, HAProxy
NetworkNetwork agentsL3 Router Agent, DHCP Agent (often combined with Controller)
ComputeVirtual machine hostsXloud Compute, Libvirt --- where VMs run
StoragePersistent volumesXloud Block Storage volumes --- where VM disk data lives
MonitoringObservability stackPrometheus, Grafana, logging services
XAVS-DeploymentAnsible controllerRuns deployment playbooks (usually the same server as Controller)
XSDS-BootstrapFirst storage nodeBootstraps the Xloud Distributed Storage cluster
XSDSStorage nodesAdditional Xloud Distributed Storage nodes
A single server can hold multiple roles. In smaller deployments, it is common to combine Controller, Network, and XAVS-Deployment on the same server.

Hosts Tabs

The Hosts module is organized into four tabs. Each tab handles a distinct part of the cluster inventory and connectivity workflow.
The Hosts tab is where you register servers into the cluster inventory. Choose your deployment mode first (AIO or Multi-Node), then add hosts using one of three methods.Three ways to add hosts:

Single Add

Add one host at a time through the form. Enter hostname (e.g., xd1.example), IP address, SSH port (default 22), then select roles using the toggle buttons: Controller, Network, Compute, Storage, Monitoring, XAVS-Deployment, XSDS-Bootstrap, XSDS.Click Ping to verify connectivity before adding.
Paste multiple hosts, one per line: hostname,ip,roles (roles separated by | or ;).
Example
ctrl-01,10.0.1.71,controller|network|xavs-deployment
compute-01,10.0.1.72,compute
compute-02,10.0.1.75,compute|storage
Click Preview to verify, Ping All to check connectivity, then Commit to add.
Upload a JSON or CSV file with host definitions. Download sample files for the correct format. Useful for replicating host configs across environments.
Network Scanner: Enter a subnet (e.g., 10.0.1.0/24) and click Scan Network to discover responsive hosts automatically.Node Inventory Table: Shows all added hosts with columns for Hostname, IP, Port, Roles (as colored badges), Ping status, SSH status. Searchable and paginated with Ping All and SSH Check All buttons.
The inventory table generates the Ansible inventory file automatically — you never need to manually edit the nodes file.

Next Steps

Configuration

Configure networking, storage, monitoring, and security settings for your deployment

Operations

Deploy, upgrade, reconfigure, and manage cloud services across your cluster