Autodeployer support for ODL Plugin installation + Fuel 6.1
[genesis.git] / fuel / deploy / README.txt
index d392f8f..f42e9ac 100644 (file)
 
-======== How to prepare and run the OPNFV Autodeployment =======
+======== PREREQUISITES ========
 
-in fuel/build/deploy run these:
+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
+sudo apt-get install -y python-dev libz-dev libxml2-dev libxslt-dev
+sudo pip install pyyaml netaddr paramiko lxml scp pycrypto ecdsa
 
---- Step.1 Install prerequisites
+During libvirt install the user is added to the libvirtd group, so you have to
+logout then login back again
 
-sudo ./install-ubuntu-packages.sh
 
+======== 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:
 
---- Step.2-A If wou want to deploy OPNFV cloud environment on top of KVM/Libvirt virtualization
-             run the following environment setup script
+  * SR1 configuration files
 
-sudo python setup_environment.py <storage_directory> <path_to_dha_file>
+  =>   templates/virtual_environment/conf/ha
+                dea.yaml
+                dha.yaml
 
-Example:
-         sudo python setup_environment.py /mnt/images dha.yaml
 
+  * ARNO configuration files
 
+  =>   templates/virtual_environment/old_conf/ha
+                dea.yaml
+                dha.yaml
 
+  =>   templates/virtual_environment/old_conf/multinode
+                dea.yaml
+                dha.yaml
 
 
+- If you wish to deploy OPNFV cloud environment on hardware
+  use as example the following configuration files:
 
---- Step.2-B If you want to deploy OPNFV cloud environment on baremetal run the
-             following environment setup script
+  * SR1 configuration files
 
-sudo python setup_vfuel.py <storage_directory> <path_to_dha_file>
+  =>   templates/hardware_environment/conf/ericsson_montreal_lab/ha
+                dea.yaml
+                dha.yaml
 
-Example:
-         sudo python setup_vfuel.py /mnt/images 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
 
-WARNING!:
-setup_vfuel.py adds the following snippet into /etc/network/interfaces
-making sure to replace in setup_vfuel.py interfafe 'p1p1.20' with your actual outbound
-interface in order to provide network access to the Fuel master for DNS and NTP.
 
-iface vfuelnet inet static
-       bridge_ports em1
-       address 10.40.0.1
-       netmask 255.255.255.0
-       pre-down iptables -t nat -D POSTROUTING --out-interface p1p1.20 -j MASQUERADE  -m comment --comment "vfuelnet"
-       pre-down iptables -D FORWARD --in-interface vfuelnet --out-interface p1p1.20 -m comment --comment "vfuelnet"
-       post-up iptables -t nat -A POSTROUTING --out-interface p1p1.20 -j MASQUERADE  -m comment --comment "vfuelnet"
-       post-up iptables -A FORWARD --in-interface vfuelnet --out-interface p1p1.20 -m comment --comment "vfuelnet"
+  * ARNO configuration files
 
+  =>   templates/hardware_environment/old_conf/ericsson_montreal_lab/ha
+                dea.yaml
+                dha.yaml
 
+  =>   templates/hardware_environment/old_conf/ericsson_montreal_lab/multinode
+                dea.yaml
+                dha.yaml
 
+  =>   templates/hardware_environment/old_conf/linux_foundation_lab/ha
+                dea.yaml
+                dha.yaml
 
+  =>   templates/hardware_environment/old_conf/linux_foundation_lab/multinode
+                dea.yaml
+                dha.yaml
 
 
---- Step.3 Start Autodeployment
-Make sure you use the right Deployment Environment Adapter and
-Deployment Hardware Adaper configuration files:
+--- Step.2 Run Autodeployment ---
 
-       - for baremetal:  baremetal/dea.yaml   baremetal/dha.yaml
+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]
 
-       - for libvirt:    libvirt/dea.yaml   libvirt/dha.yaml
+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
 
 
-sudo python deploy.py [-nf] <isofile> <deafile> <dhafile>
+* EXAMPLES:
 
-Example:
-         sudo python deploy.py ~/ISO/opnfv.iso baremetal/dea.yaml baremetal/dha.yaml
+- 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 -p ~/PLUGIN
+
+
+- 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 -p ~/PLUGIN
+
+
+- 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 -p ~/PLUGIN
+
+    => with cleanup after deployment is finished
+    sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -p ~/PLUGIN -c
+
+    => no healthcheck after deployment is completed
+    sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -p ~/PLUGIN -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 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