Local Deployment#
This guide describes how to deploy a local installation of the Exordos platform on a single host machine.
Dependencies#
It's assumed Linux (Ubuntu) is used as the OS on your machine.
Exordos CLI#
Install the Exordos CLI:
curl -fsSL https://repo.exordos.com/install.sh | sudo sh
Packages#
Install necessary packages:
sudo apt update
sudo apt install qemu-kvm qemu-utils libvirt-daemon-system libvirt-dev mkisofs -y
Add the current user to the required groups:
sudo adduser $USER libvirt
sudo adduser $USER kvm
Local machine as a hypervisor#
The local host must be configured as a hypervisor so that the platform can schedule and run virtual machine workloads on it.
Initialize the current host as a hypervisor:
exordos compute hypervisors init
Key parameters#
Run exordos compute hypervisors init --help to see all available options. The most important ones are:
| Option | Description |
|---|---|
--pool_name TEXT |
Name of the libvirt storage pool to use for VM disk images. Defaults to default. |
--packer / -p |
Install HashiCorp Packer alongside the hypervisor setup. |
--romfile_version TEXT |
Version of the network interface ROM file to install. |
Bootstrap#
Once the local machine is configured as a hypervisor, run the bootstrap procedure to deploy the platform:
exordos bootstrap -i <version> -f -m core --ssh-public-key /path/to/public/key
where <version> is the version of the platform to deploy (e.g., 0.0.6). Available versions can be found on the releases page.
The platform can be started either from a local build (a locally built image) or from a remote repository (a prebuilt image fetched from the official repository).
Local build example:
exordos bootstrap -i /path/to/exordos-core.raw -m core
Remote repository example (default):
exordos bootstrap -i https://repository.exordos.com/exordos-elements/core/0.0.6/ -m core
Key parameters#
Run exordos bootstrap --help to see all available options. The most important ones are:
| Option | Description |
|---|---|
--profile |
Installation profile: develop, small, medium, large, or legacy. Defaults to small. |
--cidr IPV4NETWORK |
Main network CIDR for the platform. Defaults to 10.20.0.0/22. |
--core-ip IPV4ADDRESS |
IP address for the core VM. If not set, the second address from --cidr is used. |
--admin-password TEXT |
Password for the admin user. If not provided, a password is generated automatically. |
--save-admin-password-file TEXT |
Save the admin password to a file instead of printing it to the console. |
--ssh-public-key PATH |
Path to a public SSH key to inject into the VM. Can be specified multiple times. |
--hyper-connection-uri TEXT |
Connection URI for the hypervisor, e.g. qemu+tcp://10.0.0.1/system or qemu+ssh://user@10.0.0.1/system. |
--hyper-storage-pool TEXT |
Libvirt storage pool to use for VM disks. Defaults to default. |
--force / -f |
Force rebuild if the output already exists. |
Usage#
After exordos bootstrap completes, the platform is up and running. The command prints the credentials for the admin user to the console (or saves them to a file if --save-admin-password-file was specified).
SSH access#
If a public SSH key was provided during bootstrap via --ssh-public-key, you can connect directly to the core VM:
ssh ubuntu@10.20.0.2
API access#
Use the admin credentials to obtain an access token from the IAM service:
curl --location 'http://10.20.0.2:11010/v1/iam/clients/00000000-0000-0000-0000-000000000000/actions/get_token/invoke' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=<ADMIN_USERNAME>' \
--data-urlencode 'password=<ADMIN_PASSWORD>' \
--data-urlencode 'client_id=ExordosCoreClientId' \
--data-urlencode 'client_secret=ExordosCoreSecret' \
--data-urlencode 'scope=' \
--data-urlencode 'ttl=86400'
The response contains an access_token field. Use this token as a Bearer token in all subsequent API requests.
CLI access#
Configure the exordos CLI by registering a realm and a context with the admin credentials:
exordos settings set-realm local --endpoint http://10.20.0.2:11010 --current
exordos settings set-context local --name admin -u <ADMIN_USERNAME> -p <ADMIN_PASSWORD> --current
set-realmregisters the platform endpoint under the namelocaland marks it as the active realm.set-contextcreates a named context with the admin credentials and marks it as the active context.
After configuration, you can manage the platform using exordos commands, for example:
exordos compute hypervisors list
exordos elements list