Skip to content

Latest commit

 

History

History
140 lines (95 loc) · 4.84 KB

File metadata and controls

140 lines (95 loc) · 4.84 KB

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://repo.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-realm registers the platform endpoint under the name local and marks it as the active realm.
  • set-context creates 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