Jump to: navigation, search

Installation libvirt qemu

Revision as of 18:26, 19 February 2020 by Kristal.dale (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Warning icon.svg Warning - Deprecated

This wiki page is out of date and now deprecated. For the current version of the StarlingX documentation please see the documentation website.

Installation for StarlingX using Libvirt/QEMU virtualization.

Hardware Requirements

A workstation computer with:

  • Processor: x86_64 only supported architecture with BIOS enabled hardware virtualization extensions
  • Memory: At least 32GB RAM
  • Hard Disk: 500GB HDD
  • Network: One network adapter with active Internet connection

Software Requirements

A workstation computer with:

  • Operating System: This process is known to work on Ubuntu 16.04 and is likely to work on other Linux OS's with some appropriate adjustments.
  • Proxy settings configured (if applies)
  • Git
  • KVM/VirtManager
  • Libvirt Library
  • QEMU Full System Emulation Binaries
  • <stx-deployment> project
  • StarlingX ISO Image

Deployment Environment Setup


These scripts are configured using environment variables that all have built-in defaults. On shared systems you probably do not want to use the defaults. The simplest way to handle this is to keep an rc file that can be sourced into an interactive shell that configures everything. Here's an example called madcloud.rc::

export CONTROLLER=madcloud
export COMPUTE=madnode

This rc file shows the defaults baked into the scripts:

export CONTROLLER=controller
export COMPUTE=compute

Install stx-tools project

Clone the stx-tools project into a working directory.

git clone git://git.openstack.org/openstack/stx-tools.git

It will be convenient to set up a shortcut to the deployment script directory:


Load the configuration (if you created one) from madcloud.rc:

source madcloud.rc

Installing Requirements and Dependencies

Install the required packages and configure QEMU. This only needs to be done once per host. (NOTE: this script only knows about Ubuntu at this time):


Disabling Firewall

Unload firewall and disable firewall on boot:

sudo ufw disable
sudo ufw status

Configure Networks

Configure the network bridges using setup_network.sh before doing anything else. It will create 4 bridges named stxbr1, stxbr2, stxbr3 and stxbr4. Set the BRIDGE_INTERFACE environment variable if you need to change stxbr to something unique.


The destroy_network.sh script does the reverse, and should not be used lightly. It should also only be used after all of the VMs created below have been destroyed.

There is also a script cleanup_network.sh that will remove networking configuration from libvirt.

Configure Controllers

There are two scripts for creating the controllers: setup_allinone.sh and setup_standard_controller.sh. They are operated in the same manner but build different StarlingX cloud configurations. Choose wisely.

You need an ISO file for the installation, these scripts take a name with the -i option::

$SCRIPTS/setup_allinone.sh -i stx-2018-08-28-93.iso

And the setup will begin. The scripts create one or more VMs and start the boot of the first controller, named oddly enough ``controller-0``. If you have Xwindows available you will get virt-manager running. If not, Ctrl-C out of that attempt if it doesn't return to a shell prompt. Then connect to the serial console::

virsh console madcloud-0

Continue the usual StarlingX installation from this point forward.

Tear down the VMs using destroy_allinone.sh and destroy_standard_controller.sh.


Pick up the installation in one of the existing guides at the 'Initializing Controller-0 step.