Add cfg01 define vm via VBOX for Mac OS
Added script to deploy cfg01 VM on Mac OS, which will also
download cfg01 VDI disk image and config-drive ISO by provided URLs.
Also includes README how to use that script.
Change-Id: If30f42277d6b9e81b29bfb90c28c79644202489a
Related-Prod: PROD-27573 (PROD:27573)
Related-Prod: PROD-27656 (PROD:27656)
Related-Prod: PROD-27990 (PROD:27990)
diff --git a/predefine-vm/README.rst b/predefine-vm/README.rst
new file mode 100644
index 0000000..a894f16
--- /dev/null
+++ b/predefine-vm/README.rst
@@ -0,0 +1,68 @@
+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 good to specify during
+model generation username and password to be able to login via VM console if something goes wrong.
+Once you are logged in you can follow usual debug procedure for cfg01 node.
\ No newline at end of file