############################################################################## # Copyright (c) 2015 Ericsson AB and others. # peter.barabas@ericsson.com # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## ======== PREREQUISITES ======== the following dependencies and python modules are required to be installed: - for Ubuntu: sudo apt-get install -y libvirt-bin qemu-kvm python-pip fuseiso mkisofs genisoimage sudo apt-get install -y python-dev libz-dev libxml2-dev libxslt-dev sudo pip install pyyaml netaddr paramiko lxml scp pycrypto ecdsa During libvirt install the user is added to the libvirtd group, so you have to logout then login back again ======== PREPARE and RUN the OPNFV Autodeployment ======== --- Step.1 Prepare the DEA and DHA configuration files and the OPNFV ISO file Make sure that you are using the right DEA - Deployment Environment Adapter and DHA - Deployment Hardware Adapter configuration files, the ones provided are only templates you will have to modify them according to your needs - If wou wish to deploy OPNFV cloud environment on top of KVM/Libvirt virtualization use as example the following configuration files: => templates/virtual_environment/conf/ha dea.yaml dha.yaml - If you wish to deploy OPNFV cloud environment on hardware use as example the following configuration files: => templates/hardware_environment/conf/ericsson_montreal_lab/pod1/ha dea.yaml dha.yaml => templates/hardware_environment/conf/linux_foundation_lab/pod1/ha dea.yaml dha.yaml => templates/hardware_environment/conf/linux_foundation_lab/pod2/ha dea.yaml dha.yaml --- Step.2 Run Autodeployment --- usage: python ./deploy.py [-h] [-nf] [-nh] [-fo] [-co] [-c] [-iso [ISO_FILE]] [-dea [DEA_FILE]] [-dha [DHA_FILE]] [-s STORAGE_DIR] [-b PXE_BRIDGE] [-p FUEL_PLUGINS_DIR] [-pc FUEL_PLUGINS_CONF_DIR] [-np] [-dt DEPLOY_TIMEOUT] [-nde] optional arguments: -h, --help show this help message and exit -nf Do not install Fuel Master (and Node VMs when using libvirt) -nh Don't run health check after deployment -fo Install Fuel Master only (and Node VMs when using libvirt) -co Cleanup VMs and Virtual Networks according to what is defined in DHA -c Cleanup after deploy -iso [ISO_FILE] ISO File [default: OPNFV.iso] -dea [DEA_FILE] Deployment Environment Adapter: dea.yaml -dha [DHA_FILE] Deployment Hardware Adapter: dha.yaml -s STORAGE_DIR Storage Directory [default: images] -b PXE_BRIDGE Linux Bridge for booting up the Fuel Master VM [default: pxebr] -p FUEL_PLUGINS_DIR Fuel Plugins directory -pc FUEL_PLUGINS_CONF_DIR Fuel Plugins Configuration directory -np Do not install Fuel Plugins -dt DEPLOY_TIMEOUT Deployment timeout (in minutes) [default: 240] -nde Do not launch environment deployment * EXAMPLES: - Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware Environment: sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr - Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual Environment: sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images - Deploy OPNFV Cloud on an already active Environment where Fuel Master VM is running so no need to install Fuel again: sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml => with plugin installation sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml => with cleanup after deployment is finished sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -c => no healthcheck after deployment is completed sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -nh - Install Fuel Master only (and Node VMs when using virtual environment): => for virtual environment: sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images => for hardware environment: sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr - Cleanup a running OPNFV environment: sudo python deploy.py -co -dha ~/CONF/virtual/dha.yaml * WARNINGS: => If optional argument -s <storage_dir> is not specified, Autodeployment will use "<current_working_dir>/images" as default, and it will create it, if it hasn't been created before => If optional argument -b <pxe_bridge> is not specified, Autodeployment will use "pxebr" as default, if the bridge does not exist, the application will terminate with an error message => If argument -iso [ISO_FILE] is not specified, Autodeployment will use "<current_working_dir>/OPNFV.iso" as default, if the iso file does not exist, the application will terminate with an error message => If argument -dea [DEA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dea.yaml" as default, if DEA file does not exist, the application will terminate with an error message => If argument -dha [DHA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dha.yaml" as default, if DHA file does not exist, the application will terminate with an error message => Optional argument -b PXE_BRIDGE is not required for Autodeployment in virtual environment, even if it is specified it will not be used at all because virtual environment is using a different virtual network setup => If optional argument -p FUEL_PLUGINS_DIR is not specified, no external plugins will be installed in Fuel --- Networking considerations --- For Virtual Environment: There are some NAT, IPTABLE conflicts on the edge of libvirt bridging and Fuel Master according to http://wiki.libvirt.org/page/Networking netfilter on the bridges should be disabled Add these lines to /etc/sysctl.conf cat >> /etc/sysctl.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 EOF and then reload configuration: sysctl -p /etc/sysctl.conf