77c6d3109b
This change is required in order to support testing on python 3.12 Test Plan: pass - Run tox -eflake8 in a ubuntu:noble container Change-Id: I427a7cab6c67905e0496cbbe07d4367d080dfb58 Signed-off-by: Leonardo Fagundes Luz Serrano <Leonardo.FagundesLuzSerrano@windriver.com> |
||
---|---|---|
.. | ||
regression | ||
xml | ||
yaml | ||
cleanup_network.sh | ||
config.py | ||
destroy_configuration.sh | ||
destroy_network.sh | ||
functions.sh | ||
install_packages.sh | ||
readconfig.sh | ||
README.rst | ||
set_defaults.sh | ||
setup_configuration.sh | ||
setup_network.sh | ||
show_diskusage.sh |
StarlingX Deployment on Libvirt
This is a quick reference for deploying StarlingX on libvirt/qemu systems. It assumes you have a working libvirt/qemu installation for a non-root user and that your user has NOPASSWD sudo permissions.
Refer also to pages "Installation Guide" on the StarlingX Documentation: https://docs.starlingx.io/installation_guide/index.html
Overview
We create 4 bridges to use for the STX cloud. This is done in an initial step separate from the VM management.
Depending on which basic configuration is chosen, we create a number of VMs for one or more controllers and storage nodes.
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:
export CONTROLLER=madcloud
export WORKER=madnode
export BRIDGE_INTERFACE=madbr
export EXTERNAL_NETWORK=172.30.20.0/24
export EXTERNAL_IP=172.30.20.1/24
Using source ./readconfig.sh yaml/madcloud.yaml
also
sets the madcloud environment variables. Use
yaml/default.yaml
or yaml/madcloud.yaml
as
templates to make custom configurations.
Networking
Configure the 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.
Controllers
There is one script for creating the controllers:
setup_configuration.sh
. It builds different StarlingX cloud
configurations:
- simplex
- duplex
- controllerstorage
- dedicatedstorage
You need an StarlingX ISO file for the installation. The script takes
the configuration name with the -c
option and the ISO file
name with the -i
option:
./setup_configuration.sh -c simplex -i stx-2018-08-28-93.iso
And the setup will begin. The script 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 controller-0
Continue the usual StarlingX installation from this point forward.
Tear down the VMs giving the configuration name with the
-c
option:
>-------./destroy_configuration.sh -c simplex