1 ##############################################################################
2 # Copyright (c) 2015 Ericsson AB and others.
3 # peter.barabas@ericsson.com
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
10 ======== PREREQUISITES ========
12 the following dependencies and python modules are required to be installed:
16 sudo apt-get install -y libvirt-bin qemu-kvm python-pip fuseiso mkisofs genisoimage
17 sudo apt-get install -y python-dev libz-dev libxml2-dev libxslt-dev
18 sudo pip install pyyaml netaddr paramiko lxml scp pycrypto ecdsa
20 During libvirt install the user is added to the libvirtd group, so you have to
21 logout then login back again
24 ======== PREPARE and RUN the OPNFV Autodeployment ========
27 --- Step.1 Prepare the DEA and DHA configuration files and the OPNFV ISO file
29 Make sure that you are using the right DEA - Deployment Environment Adapter and
30 DHA - Deployment Hardware Adapter configuration files, the ones provided are only templates
31 you will have to modify them according to your needs
33 - If wou wish to deploy OPNFV cloud environment on top of KVM/Libvirt
34 virtualization use as example the following configuration files:
36 => templates/virtual_environment/conf/ha
41 - If you wish to deploy OPNFV cloud environment on hardware
42 use as example the following configuration files:
44 => templates/hardware_environment/conf/ericsson_montreal_lab/pod1/ha
48 => templates/hardware_environment/conf/linux_foundation_lab/pod1/ha
52 => templates/hardware_environment/conf/linux_foundation_lab/pod2/ha
57 --- Step.2 Run Autodeployment ---
59 usage: python ./deploy.py [-h] [-nf] [-nh] [-fo] [-co] [-c] [-iso [ISO_FILE]]
60 [-dea [DEA_FILE]] [-dha [DHA_FILE]] [-s STORAGE_DIR]
61 [-b PXE_BRIDGE] [-p FUEL_PLUGINS_DIR]
62 [-pc FUEL_PLUGINS_CONF_DIR] [-np]
63 [-dt DEPLOY_TIMEOUT] [-nde]
66 -h, --help show this help message and exit
67 -nf Do not install Fuel Master (and Node VMs when using
69 -nh Don't run health check after deployment
70 -fo Install Fuel Master only (and Node VMs when using
72 -co Cleanup VMs and Virtual Networks according to what is
74 -c Cleanup after deploy
75 -iso [ISO_FILE] ISO File [default: OPNFV.iso]
76 -dea [DEA_FILE] Deployment Environment Adapter: dea.yaml
77 -dha [DHA_FILE] Deployment Hardware Adapter: dha.yaml
78 -s STORAGE_DIR Storage Directory [default: images]
79 -b PXE_BRIDGE Linux Bridge for booting up the Fuel Master VM
81 -p FUEL_PLUGINS_DIR Fuel Plugins directory
82 -pc FUEL_PLUGINS_CONF_DIR
83 Fuel Plugins Configuration directory
84 -np Do not install Fuel Plugins
85 -dt DEPLOY_TIMEOUT Deployment timeout (in minutes) [default: 240]
86 -nde Do not launch environment deployment
91 - Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware Environment:
93 sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr
96 - Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual Environment:
98 sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images
101 - Deploy OPNFV Cloud on an already active Environment where Fuel Master VM is running so no need to install Fuel again:
103 sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml
105 => with plugin installation
106 sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml
108 => with cleanup after deployment is finished
109 sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -c
111 => no healthcheck after deployment is completed
112 sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -nh
115 - Install Fuel Master only (and Node VMs when using virtual environment):
117 => for virtual environment:
118 sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images
120 => for hardware environment:
121 sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr
124 - Cleanup a running OPNFV environment:
126 sudo python deploy.py -co -dha ~/CONF/virtual/dha.yaml
131 => If optional argument -s <storage_dir> is not specified, Autodeployment will use
132 "<current_working_dir>/images" as default, and it will create it, if it hasn't been created before
134 => If optional argument -b <pxe_bridge> is not specified, Autodeployment will use "pxebr" as default,
135 if the bridge does not exist, the application will terminate with an error message
137 => If argument -iso [ISO_FILE] is not specified, Autodeployment will use "<current_working_dir>/OPNFV.iso"
138 as default, if the iso file does not exist, the application will terminate with an error message
140 => If argument -dea [DEA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dea.yaml"
141 as default, if DEA file does not exist, the application will terminate with an error message
143 => If argument -dha [DHA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dha.yaml"
144 as default, if DHA file does not exist, the application will terminate with an error message
146 => Optional argument -b PXE_BRIDGE is not required for Autodeployment in virtual environment,
147 even if it is specified it will not be used at all because virtual environment is using a different virtual network setup
149 => If optional argument -p FUEL_PLUGINS_DIR is not specified, no external plugins will be installed in Fuel
152 --- Networking considerations ---
154 For Virtual Environment:
156 There are some NAT, IPTABLE conflicts on the edge of libvirt bridging and Fuel Master
157 according to http://wiki.libvirt.org/page/Networking
158 netfilter on the bridges should be disabled
160 Add these lines to /etc/sysctl.conf
162 cat >> /etc/sysctl.conf <<EOF
163 net.bridge.bridge-nf-call-ip6tables = 0
164 net.bridge.bridge-nf-call-iptables = 0
165 net.bridge.bridge-nf-call-arptables = 0
168 and then reload configuration:
169 sysctl -p /etc/sysctl.conf