StarlingX/Containers/InstallationOnAIODX
Contents
- 1 Installing StarlingX with containers: All in One Duplex configuration
- 1.1 History
- 1.2 Introduction
- 1.3 Building the Software
- 1.4 Setup the VirtualBox VM
- 1.5 VirtualBox Nat Networking
- 1.6 Install StarlingX
- 1.7 Initial Configuration
- 1.8 Provisioning the platform
- 1.9 Boot the second AIO controller
- 1.10 Provisioning the second AIO controller
- 1.11 Prepare the host for running the containerized services
- 1.12 Using sysinv to bring up/down the containerized services
- 1.13 Verify the cluster endpoints
- 1.14 Provider/tenant networking setup
- 1.15 Horizon access
- 1.16 Known Issues and Troubleshooting
Installing StarlingX with containers: All in One Duplex configuration
History
January 24, 2019: Initial draft
Introduction
These instructions are for an All-in-one duplex system in VirtualBox. Other configurations are in development.
Installing on bare metal is also possible, however the the process would have to be adapted for the specific hardware configuration.
Note: These instructions are valid for a load built on January 24, 2019 or later.
Building the Software
Follow the standard build process in the StarlingX Developer Guide.
Alternatively a prebuilt iso can be used, all required packages are provided by the StarlingX CENGN mirror
Setup the VirtualBox VM
Refer to these instructions on the AIO SX page Setup_the_VirtualBox_VM
Remember to setup TWO VMs.
VirtualBox Nat Networking
Refer to these instructions on the AIO SX page VirtualBox_Nat_Networking
Install StarlingX
Boot the VM from the ISO media. Select the following options for installation:
- All-in-one Controller
- Graphical Console
- Standard Security Profile
Once booted, log into Controller-0 as user wrsroot, with password wrsroot. The first time you log in as wrsroot, you are required to change your password. Enter the current password (wrsroot):
Changing password for wrsroot. (current) UNIX Password: wrsroot
Enter a new password for the wrsroot account and confirm it.
Initial Configuration
Run config_controller
sudo config_controller --kubernetes
Use default settings during config_controller, except for the following System mode: duplex
If you do not have direct access to the google DNS nameserver(s) 8.8.8.8 , 8.8.4.4 you will need to configure that when prompted. Press Enter to choose the default, or type a new entry.
If you do not have direct access to the public docker registry (https://hub.docker.com/u/starlingx) and instead use a proxy for internet access, you will need to add proxy information when prompted.
After you apply the configuration
The following configuration will be applied: System Configuration -------------------- Time Zone: UTC System mode: duplex PXEBoot Network Configuration ----------------------------- Separate PXEBoot network not configured PXEBoot Controller floating hostname: pxecontroller Management Network Configuration -------------------------------- Management interface name: enp0s8 Management interface: enp0s8 Management interface MTU: 1500 Management subnet: 192.168.204.0/24 Controller floating address: 192.168.204.2 Controller 0 address: 192.168.204.3 Controller 1 address: 192.168.204.4 NFS Management Address 1: 192.168.204.5 NFS Management Address 2: 192.168.204.6 Controller floating hostname: controller Controller hostname prefix: controller- OAM Controller floating hostname: oamcontroller Dynamic IP address allocation is selected Management multicast subnet: 239.1.1.0/28 Infrastructure Network Configuration ------------------------------------ Infrastructure interface not configured Kubernetes Cluster Network Configuration ---------------------------------------- Cluster pod network subnet: 172.16.0.0/16 Cluster service network subnet: 10.96.0.0/12 Cluster host interface name: enp0s8 Cluster host interface: enp0s8 Cluster host interface MTU: 1500 Cluster host subnet: 192.168.206.0/24 External OAM Network Configuration ---------------------------------- External OAM interface name: enp0s3 External OAM interface: enp0s3 External OAM interface MTU: 1500 External OAM subnet: 10.10.10.0/24 External OAM gateway address: 10.10.10.1 External OAM floating address: 10.10.10.2 External OAM 0 address: 10.10.10.3 External OAM 1 address: 10.10.10.4 DNS Configuration ----------------- Nameserver 1: 8.8.8.8 Apply the above configuration? [y/n]: y
In this example only one default Nameserver (8.8.8.8) was configured
Provisioning the platform
Set the ntp server
source /etc/platform/openrc system ntp-modify ntpservers=0.pool.ntp.org,1.pool.ntp.org
Configure data interfaces
source /etc/platform/openrc export COMPUTE=controller-0 DATA0IF=eth1000 DATA1IF=eth1001 PHYSNET0='physnet0' PHYSNET1='physnet1' SPL=/tmp/tmp-system-port-list SPIL=/tmp/tmp-system-host-if-list NOWRAP="--nowrap" system host-port-list ${COMPUTE} $NOWRAP > ${SPL} system host-if-list -a ${COMPUTE} $NOWRAP > ${SPIL} DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') system host-if-modify -m 1500 -n data0 -p ${PHYSNET0} -c data ${COMPUTE} ${DATA0IFUUID} system host-if-modify -m 1500 -n data1 -p ${PHYSNET1} -c data ${COMPUTE} ${DATA1IFUUID}
Setup partitions for Controller-0
This configures Nova-Local as 10G and cgts-vg as 30G
export COMPUTE=controller-0 source /etc/platform/openrc
echo ">>> Getting root disk info" ROOT_DISK=$(system host-show ${COMPUTE} | grep rootfs | awk '{print $4}') ROOT_DISK_UUID=$(system host-disk-list ${COMPUTE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID"
echo ">>>> Configuring nova-local" PARTITION_SIZE=10 NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${PARTITION_SIZE}) NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') system host-lvg-add ${COMPUTE} nova-local system host-pv-add ${COMPUTE} nova-local ${NOVA_PARTITION_UUID} sleep 2
echo ">>> Wait for partition $NOVA_PARTITION_UUID to be ready. This takes a while" while true; do system host-disk-partition-list $COMPUTE --nowrap | grep $NOVA_PARTITION_UUID | grep Ready; if [ $? -eq 0 ]; then break; fi; sleep 1; done
echo ">>>> Extending cgts-vg" PARTITION_SIZE=30 CGTS_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${PARTITION_SIZE}) CGTS_PARTITION_UUID=$(echo ${CGTS_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}')
echo ">>> Wait for partition $CGTS_PARTITION_UUID to be ready" while true; do system host-disk-partition-list $COMPUTE --nowrap | grep $CGTS_PARTITION_UUID | grep Ready; if [ $? -eq 0 ]; then break; fi; sleep 1; done
system host-pv-add ${COMPUTE} cgts-vg ${CGTS_PARTITION_UUID} sleep 2
echo ">>> Waiting for cgts-vg to be ready" while true; do system host-pv-list ${COMPUTE} | grep cgts-vg | grep adding; if [ $? -ne 0 ]; then break; fi; sleep 1; done
Configure Ceph for Controller-0
TO DO
Unlock Controller-0
source /etc/platform/openrc system host-unlock controller-0
Boot the second AIO controller
Boot the second VM (without an ISO media mounted) Hit F12 immediately when the VM starts to select a different boot option - select the "lan" option to force a network boot.
At the controller-1 console, you will see a message instructing you to configure the personality of the node. Do this from a shell on controller-0 as follows:
source /etc/platform/openrc system host-list +----+--------------+-------------+----------------+-------------+--------------+ | id | hostname | personality | administrative | operational | availability | +----+--------------+-------------+----------------+-------------+--------------+ | 1 | controller-0 | controller | unlocked | enabled | available | | 2 | None | None | locked | disabled | offline | +----+--------------+-------------+----------------+-------------+--------------+ [wrsroot@controller-0 ~(keystone_admin)]# system host-update 2 personality=controller
The packages will install and the controller will reboot.
TO DO: add output from host-update step
Provisioning the second AIO controller
TO DO
Prepare the host for running the containerized services
TO DO
Using sysinv to bring up/down the containerized services
Refer to these instructions on the AIO SX page here
Verify the cluster endpoints
Refer to these instructions on the AIO SX page here
Provider/tenant networking setup
Refer to these instructions on the AIO SX page here
Horizon access
Refer to these instructions on the AIO SX page here
Known Issues and Troubleshooting
None