Skip to content

Migrate to KVM - #160

Merged
badrogger merged 2 commits into
developfrom
kvm-vms-role
Oct 2, 2026
Merged

badrogger merged 2 commits into
developfrom
kvm-vms-role

Conversation

@badrogger

Copy link
Copy Markdown
Collaborator

This pull request introduces a comprehensive Ansible-based solution for provisioning and managing bare-metal KVM virtual machines (VMs) for SKALE node deployment. It adds new playbooks, roles, and documentation to automate VM lifecycle management (creation, configuration, and destruction), making it possible to run node infrastructure on self-hosted servers as an alternative to cloud providers.

The most important changes are:

Bare-metal KVM VM provisioning support:

  • Added a new Ansible playbook (skale-nodes/ansible/vms.yaml) to automate the creation, configuration, and destruction of KVM VMs on user-provided servers, including first-boot handling and cloud-init waits.
  • Introduced a new vms role with tasks for planning, SSH key management, host preparation (KVM/libvirt setup), VM creation, and destruction (roles/vms/tasks/*.yaml). This includes checks for KVM availability, network configuration, storage setup, and image downloading. [1] [2] [3] [4] [5] [6]

Configuration and customization:

  • Added a comprehensive set of default variables for VM and server configuration in roles/vms/defaults/main.yaml, allowing customization of CPU, RAM, disk sizes, network interfaces, and SSH keys.

Integration and documentation:

  • Updated the README.md with detailed instructions for using the new bare-metal KVM provisioning features, including inventory setup, playbook usage, and customization tips. [1] [2]
  • Modified the base.yaml playbook to exclude KVM host servers from node provisioning, preventing accidental configuration of the hypervisor as a node.

Cloud-init and network configuration:

  • Added Jinja2 templates for cloud-init (meta-data.j2, user-data.j2, network-config.j2) to automate VM initialization, static IP assignment, and SSH key setup. [1] [2] [3]

These changes provide a robust, flexible foundation for running SKALE node infrastructure on bare-metal servers using KVM virtualization, with full automation for VM lifecycle and configuration.

@badrogger
badrogger merged commit 36531b1 into develop Oct 2, 2026
@badrogger
badrogger deleted the kvm-vms-role branch October 2, 2026 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant