Merge "docs: Mitaka Build req: Add p7zip-full."
[fuel.git] / deploy / README
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 ##############################################################################
9
10 ======== PREREQUISITES ========
11
12 the following dependencies and python modules are required to be installed:
13
14 - for Ubuntu:
15
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
19
20 During libvirt install the user is added to the libvirtd group, so you have to
21 logout then login back again
22
23
24 ======== PREPARE and RUN the OPNFV Autodeployment ========
25
26
27 --- Step.1 Prepare the DEA and DHA configuration files and the OPNFV ISO file
28
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
32
33 - If wou wish to deploy OPNFV cloud environment on top of KVM/Libvirt
34   virtualization use as example the following configuration files:
35
36   =>   templates/virtual_environment/conf/ha
37                 dea.yaml
38                 dha.yaml
39
40
41 - If you wish to deploy OPNFV cloud environment on hardware
42   use as example the following configuration files:
43
44   =>   templates/hardware_environment/conf/ericsson_montreal_lab/pod1/ha
45                 dea.yaml
46                 dha.yaml
47
48   =>   templates/hardware_environment/conf/linux_foundation_lab/pod1/ha
49                 dea.yaml
50                 dha.yaml
51
52   =>   templates/hardware_environment/conf/linux_foundation_lab/pod2/ha
53                 dea.yaml
54                 dha.yaml
55
56
57 --- Step.2 Run Autodeployment ---
58
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]
64
65 optional arguments:
66   -h, --help            show this help message and exit
67   -nf                   Do not install Fuel Master (and Node VMs when using
68                         libvirt)
69   -nh                   Don't run health check after deployment
70   -fo                   Install Fuel Master only (and Node VMs when using
71                         libvirt)
72   -co                   Cleanup VMs and Virtual Networks according to what is
73                         defined in DHA
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
80                         [default: pxebr]
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
87
88
89 * EXAMPLES:
90
91 - Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware Environment:
92
93     sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr
94
95
96 - Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual Environment:
97
98     sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images
99
100
101 - Deploy OPNFV Cloud on an already active Environment where Fuel Master VM is running so no need to install Fuel again:
102
103     sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml
104
105     => with plugin installation
106     sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml
107
108     => with cleanup after deployment is finished
109     sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -c
110
111     => no healthcheck after deployment is completed
112     sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -nh
113
114
115 - Install Fuel Master only (and Node VMs when using virtual environment):
116
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
119
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
122
123
124 - Cleanup a running OPNFV environment:
125
126     sudo python deploy.py -co -dha ~/CONF/virtual/dha.yaml
127
128
129 * WARNINGS:
130
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
133
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
136
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
139
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
142
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
145
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
148
149 => If optional argument -p FUEL_PLUGINS_DIR is not specified, no external plugins will be installed in Fuel
150
151
152 --- Networking considerations ---
153
154 For Virtual Environment:
155
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
159
160 Add these lines to /etc/sysctl.conf
161
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
166 EOF
167
168 and then reload configuration:
169 sysctl -p /etc/sysctl.conf