====================
Deploy cfg01 locally
====================

Deploy cfg01 on Ubuntu with QEMU/KVM (libvirt)
==============================================

**Prerequisites**

Script will check and install next required packages: qemu-utils libvirt-bin virtinst qemu-kvm.

**Common info**

Script ``define-vm.sh`` gives you an ability to deploy cfg01 VM with provided cfg01 Qcwo2 disk
image and config-drive iso file on your local laptop.

Script is operating by next ENV variables:

    * VM_NAME - the name of VM to be created in VirtualBox. Default: 'cfg01-mcp.local'.
    * VM_SOURCE_DISK - the name of virtual disk to be used for virtual machine. Can be relative or absolute path.
      You can download and use the following image: http://images.mcp.mirantis.net/cfg01-day01-2019.2.0.qcow2
    * VM_CONFIG_DISK - Config-drive ISO file, can be relative or absolute path.
    * VM_MGM_BRIDGE_NAME - Bridge name to use for deploy management network. Should have Internet access if not
      offline case. Optional, default: 'br-mgm'
    * VM_CTL_BRIDGE_NAME - Bridge name to use for control network. Optional, default: 'br-ctl'
    * VM_MGM_BRIDGE_DISABLE - Do not use host bridge for deploy management network and create new nat-network.
      Optional, default: false
    * VM_CTL_BRIDGE_DISABLE - Do not use host bridge for control network and create host-only based new network.
      Optional, default: false
    * VM_MGM_NETWORK_NAME - Name for deploy management network. Optional, default: 'mgm_network'
    * VM_CTL_NETWORK_NAME - Name for control network. Optional, default: 'ctl_network'

Script will check that disk and config-drive are present and then define needed networks and spawn virtual machine.
Start VM with ``virsh start <VM_NAME>``. Then check that VM is up and running.

Once VM is up and running you can use ``virsh console`` to check what is going on during deploy.
It is recommended to specify username and password/ssh-key during model generation for login via VM console or ssh if
something goes wrong. Once you are logged in you can follow usual debug procedure for cfg01 node.

When cfg01 is bootstrapped and configured, Jenkins is available via: http://<salt_master_management_address>:8081/
Default login creds are: root/r00tme

Deploy OpenStack All-In-One node on Ubuntu with QEMU/KVM (libvirt)
==================================================================

**Prerequisites**

Setup cfg01 node and it's up, running and configured.

**Common info**

Script ``define-slave-vm.sh`` gives you an ability to deploy OpenStack All-in-one VM with provided Qcwo2 disk
image and config-drive iso file on your local laptop.

Script is operating by next ENV variables:

    * SLAVE_VM_NAME - the name of VM to be created in VirtualBox.
    * SLAVE_VM_SOURCE_DISK - the name of virtual disk to be used for virtual machine. Can be relative or absolute path.
      You can download and use the following image: http://images.mcp.mirantis.net/ubuntu-16-04-x64-mcp2019.2.0.qcow2
    * SLAVE_VM_MEM_KB - amount of RAM for VM in KB. Default is: 16777216
    * SLAVE_VM_CPUS - amount of CPUs to use. Default is: 4.
    * VM_PUBLIC_NET_NEEDED - create or not additional public interface for instance, which is used to provide
    public addresses for OpenStack. Default is: false. But for slave AIO node can not be overrided and set to true.
    * VM_PUBLIC_BRIDGE_NAME - Bridge name to use for public network. Optional, default: 'br-pub'
    * VM_PUBLIC_BRIDGE_DISABLE - Do not use host bridge for public OpenStack network and create host-only based new network. Optional, default: false
    * VM_PUBLIC_NETWORK_NAME - Name for public OpenStack network. Optional, default: 'pub_network'

Next parameters should be same as for cfg01 node:

    * VM_CONFIG_DISK
    * VM_MGM_BRIDGE_NAME
    * VM_CTL_BRIDGE_NAME
    * VM_MGM_BRIDGE_DISABLE
    * VM_CTL_BRIDGE_DISABLE
    * VM_MGM_NETWORK_NAME
    * VM_CTL_NETWORK_NAME

Next parameter:

    * RECREATE_NETWORKS_IF_EXISTS

will disable network recreation, which can be needed in case of changing network setup.
By default set to `false`, to prevent network recreation in case of rebuilding nodes. If
you need to recreate networks set it to true or manually destroy existing networks.

Also if you are not going to use system bridges, set next parameters to true:

    * export VM_MGM_BRIDGE_DISABLE=true
    * export VM_CTL_BRIDGE_DISABLE=true
    * export VM_PUBLIC_BRIDGE_DISABLE=true

This will switch using to locally created virsh networks.

Script will check that disk and cfg01 config-drive are present and then prepare config-drive for all-in-one node.
Start VM with ``virsh start <SLAVE_VM_NAME>``. Once VM is up and running you can use ``virsh console`` to check what is
going on during bootstrap. For that VM will be used same fail safe user as specified for cfg01.

Deploy cfg01 on Mac OS with VirtualBox
======================================

**Prerequisites**

Recommended VirtualBox version is 5.2.26, with Extenstion pack for the same version:

    * Get VirtualBox package for your system: https://download.virtualbox.org/virtualbox/5.2.26/
    * Extension pack: https://download.virtualbox.org/virtualbox/5.2.26/Oracle_VM_VirtualBox_Extension_Pack-5.2.26.vbox-extpack
    * Python JSON module

**Common info**

Script gives you an ability to deploy cfg01 VM with provided cfg01 VDI disk
image and config-drive iso file on your local laptop.

Script takes as arguments two URLs: for cfg01 disk image and for config-drive ISO file.
Both arguments are required in specified order. All other parameters are optional and can
be overrided by exporting them via 'export' command or by creating in script's
run directory env file 'env_overrides' with next possible arguments:

    * VM_NAME - the name of VM to be created in VirtualBox. Default: 'cfg01-mcp.local'.
    * VM_DISK - the name of virtual disk to be used for virtual machine. Can be
      an absolute path as well. This variable will be used as target file name for
      downloading virtual machine disk, please be sure that path exists.
      Default: 'cfg01-disk.vdi'
    * CONFIG_DRIVE_ISO - same as VM_DISK, but for config-drive ISO file.
      Default: 'cfg01.deploy-local.local-config.iso'
    * AUTO_USER_CONFIRM - do not ask user confirmation to override some resource if already exists.
      Default: false
    * UPDATE_ISO_INTERFACES - Update network settings in provided config-drive ISO file.
      The target and main hosts, which is used to deploy cfg01 instance, are based under
      OS Linux family and QEMU/KVM virtualization and virtio net-driver. Xenial system, which
      used for cfg01, already contains a new SystemD predictable network interface names mechanism [0],
      which automatically assigns ens[3-9] interface names for VMs. VirtualBox is using multi-functional
      network card, which leads to renaming all network interfaces to enp0s* names.
      [0] https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
      Default: true

    * DEPLOY_NET_NAME - NAT-Service network name, which is used as primary interface for cfg01. This network
      doesn't provided direct access to VM, it is possible to add manually port forwarding rules if needed, but
      for VM access use host-only network CONTROL_NET. Default: 'deploy_nat_network'
    * DEPLOY_NETWORK - NAT-Service network with CIDR to use. Should be same as on model generation
      step 'networking'. Default: '192.168.15.0/24'
    * DEPLOY_GATEWAY - NAT-Service network gateway. Should be same as on model generation step 'networking'.
      Default: '192.168.15.1'
    * DEPLOY_IP_ADDRESS - Primary deploy IP address, which is also specified during model generation.
      Default: '192.168.15.15'

    * CONTROL_NET_NAME - Host-only based network name, which has static names 'vboxnetX', where 'X' is simple
      count of existing networks for such type. Default: 'vboxnet0'
    * CONTROL_GATEWAY - Host-only based network gateway. Default: '192.168.56.1'
    * CONTROL_NETWORK - Host-only based network with CIDR to use. Should be same as on model generation
      step 'networking'. Default: '192.168.56.0/24'
    * CONTROL_IP_ADDRESS - Control IP address, which is also specified during model generation.
      Default: '192.168.56.15'

Script will go through next steps:

    * Download disk image and config drive ISO;
    * Define virtual machine with provided parameters;
    * If needed config-drive ISO network data will be updated on a fly;
    * Run virtual machine.

Once VM is up and running you can use VirtualBox VM console to check what is going on during deploy.
It will drop all logs into console and it doesn't matter loged in user or not. It is recommended to specify
username and password during model generation for login via VM console if something goes wrong.
Once you are logged in you can follow usual debug procedure for cfg01 node.