This repository builds two base images for Exordos Core project. The images contain all necessary tools and libraries to be used in Exordos installations.
- exordos-base - Full-featured base image using Ubuntu 26 profile with 4.5GB disk size
- exordos-base-minimal - Minimal base image using Ubuntu 26 minimal profile with 3.8GB disk size
The key features are:
- Universal Agent service.
- Exordos root autoresize service. Tries to perform resize of the root partition at every boot if it's possible.
- Exordos bootstrap service. Runs the bootstrap scripts.
You need DevTools to build the image. Look at the install section for details.
Run the build command:
exordos build -i ~/.ssh/key.pub -f .Where ~/.ssh/key.pub is your public key for the image.
This command builds both images: exordos-base and exordos-base-minimal.
You can customize the build using the following environment variables:
GEN_USER_PASSWD- Set the default user password (default: "ubuntu")GEN_SDK_VERSION- Specify the SDK version to install (default: "3.0.5")LOCAL_GENESIS_SDK_PATH- Path to local SDK copy for development purposes
Examples:
# Set custom user password
export GEN_USER_PASSWD=secret
exordos build -i ~/.ssh/key.pub -f .
# Use specific SDK version
export GEN_SDK_VERSION=3.0.5
exordos build -i ~/.ssh/key.pub -f .
# Build with local copy of the SDK
export LOCAL_GENESIS_SDK_PATH=/path/to/gcl_sdk
exordos build -i ~/.ssh/key.pub -f .Upload the image to your repository. Using API, CLI or web interface create a node with the image.
curl --location 'http://10.20.0.2:11010/v1/nodes/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ****' \
--data '{
"name": "vm",
"project_id": "f1f14cf1-1639-40dc-b725-757506a202b4",
"root_disk_size": 15,
"cores": 1,
"ram": 1024,
"disk_spec": {
"kind": "root_disk",
"size": 15,
"image": "http://10.20.0.1:8080/exordos-base/exordos-base.qcow2"
}
}curl --location 'http://10.20.0.2:11010/v1/nodes/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ****' \
--data '{
"name": "vm",
"project_id": "f1f14cf1-1639-40dc-b725-757506a202b4",
"cores": 1,
"ram": 1024,
"disk_spec": {
"kind": "root_disk",
"size": 15,
"image": "http://10.20.0.1:8080/exordos-base.qcow2"
}
}For next images in hierarchy you can add scripts that are executed at the very first boot of the node. Actually it can be any executable file and not only bash scripts. Put your scripts in the /var/lib/exordos/bootstrap/scripts directory and they will be executed in the order of the files in the directory.