modfiied to include both vxlan and gre overlay providers. Also set
[joid.git] / docs / release / installation / installationprocedure.rst
1 Bare Metal Installations:
2 =========================
3
4 Requirements as per Pharos:
5 ===========================
6
7 Networking:
8 ===========
9
10 **Minimum 2 networks**
11
12 | ``1. First for Admin/Management network with gateway to access external network``
13 | ``2. Second for floating ip network to consume by tenants for floating ips``
14
15 **NOTE: JOID support multiple isolated networks for API, data as well as storage.
16 Based on your network options for Openstack.**
17
18 **Minimum 6 physical servers**
19
20 1. Jump host server:
21
22 | ``   Minimum H/W Spec needed``
23 | ``  CPU cores: 16``
24 | ``  Memory: 32 GB``
25 | ``  Hard Disk: 1(250 GB)``
26 | ``  NIC: if0(Admin, Management), if1 (external network)``
27
28 2. Node servers (minimum 5):
29
30 | ``  Minimum H/W Spec``
31 | ``  CPU cores: 16``
32 | ``  Memory: 32 GB``
33 | ``  Hard Disk: 2(1 TB preferred SSD) this includes the space for ceph as well``
34 | ``  NIC: if0 (Admin, Management), if1 (external network)``
35
36
37 **NOTE: Above configuration is minimum and for better performance and usage of
38 the Openstack please consider higher spec for each nodes.**
39
40 Make sure all servers are connected to top of rack switch and configured accordingly. No DHCP server should be up and configured. Only gateway at eth0 and eth1 network should be configure to access the network outside your lab.
41
42 ------------------------
43 Jump node configuration:
44 ------------------------
45
46 1. Install Ubuntu 16.04.1 LTS server version of OS on the nodes.
47 2. Install the git and bridge-utils packages on the server and configure minimum two bridges on jump host:
48
49 brAdm and brPublic cat /etc/network/interfaces
50
51 | ``   # The loopback network interface``
52 | ``   auto lo``
53 | ``   iface lo inet loopback``
54 | ``   iface eth0 inet manual``
55 | ``   auto brAdm ``
56 | ``   iface brAdm inet static``
57 | ``       address 10.5.1.1``
58 | ``       netmask 255.255.255.0``
59 | ``       bridge_ports if0``
60 | ``   auto brPublic``
61 | ``   iface brPublic inet static``
62 | ``       address 10.5.15.1``
63 | ``       netmask 255.255.255.0``
64 | ``       bridge_ports if1``
65
66 **NOTE: If you choose to use the separate network for management, pulic , data and
67 storage then you need to create bridge for each interface. In case of VLAN tags
68 use the appropriate network on jump-host depend upon VLAN ID on the interface.**
69
70
71 Configure JOID for your lab
72 ===========================
73
74 **Get the joid code from gerritt**
75
76 *git clone https://gerrit.opnfv.org/gerrit/joid.git*
77
78 **Enable MAAS (labconfig.yaml is must and base for MAAS installation and scenario deployment)**
79
80 If you have already enabled maas for your environment and installed it then there is no need to enabled it again or install it. If you have patches from previous MAAS enablement then you can apply it here.
81
82 NOTE: If MAAS is pre installed without 00-maasdeploy.sh then please do the following and skip rest of the step to enable MAAS.
83
84 1.  Copy MAAS API key and paste in ~/.juju/environments.yaml at appropriate place.
85 2.  Run command cp ~/.juju/environments.yaml ./joid/ci/
86 3.  Generate labconfig.yaml for your lab and copy it to joid.
87     a. cp joid/labconfig/<company name>/<pod number>/labconfig.yaml joid/ci/ or
88     b. cp <newly generated labconfig.yaml> joid/ci
89 4.  cd joid/ci
90 5.  python genMAASConfig.py -l labconfig.yaml > deployment.yaml
91 6.  python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml
92 7.  cp ./environments.yaml ~/.juju/
93 8.  cp ./deployment.yaml ~/.juju/
94 9.  cp ./labconfig.yaml ~/.juju/
95 10. cp ./deployconfig.yaml ~/.juju/
96
97 If enabling first time then follow it further.
98 - Create a directory in joid/labconfig/<company name>/<pod number>/ for example
99
100 *mkdir joid/labconfig/intel/pod7/*
101
102 - copy labconfig.yaml from pod6 to pod7
103 *cp joid/labconfig/intel/pod5/\* joid/labconfig/intel/pod7/*
104
105 labconfig.yaml file
106 ===================
107
108 -------------
109 Prerequisite:
110 -------------
111
112 1. Make sure Jump host node has been configured with bridges on each interface,
113 so that appropriate MAAS and JUJU bootstrap VM can be created. For example if
114 you have three network admin, data and public then I would suggest to give names
115 like brAdm, brData and brPublic.
116 2. You have information about the node MAC address and power management details (IPMI IP, username, password) of the nodes used for control and compute node.
117
118 ---------------------
119 modify labconfig.yaml
120 ---------------------
121
122 This file has been used to configure your maas and bootstrap node in a
123 VM. Comments in the file are self explanatory and we expect fill up the
124 information according to match lab infrastructure information. Sample
125 labconfig.yaml can be found at
126 https://gerrit.opnfv.org/gerrit/gitweb?p=joid.git;a=blob;f=labconfig/intel/pod6/labconfig.yaml
127
128 *lab:
129   location: intel
130   racks:
131   - rack: pod5
132     nodes:
133     - name: rack-5-m1
134       architecture: x86_64
135       roles: [network,control]
136       nics:
137       - ifname: eth1
138         spaces: [public]
139         mac: ["xx:xx:xx:xx:xx:xx"]
140       power:
141         type: ipmi
142         address: xx.xx.xx.xx
143         user: xxxx
144         pass: xxxx
145     - name: rack-5-m1
146       architecture: x86_64
147       roles: [network,control]
148       nics:
149       - ifname: eth1
150         spaces: [public]
151         mac: ["xx:xx:xx:xx:xx:xx"]
152       power:
153         type: ipmi
154         address: xx.xx.xx.xx
155         user: xxxx
156         pass: xxxx
157     - name: rack-5-m1
158       architecture: x86_64
159       roles: [network,control]
160       nics:
161       - ifname: eth1
162         spaces: [public]
163         mac: ["xx:xx:xx:xx:xx:xx"]
164       power:
165         type: ipmi
166         address: xx.xx.xx.xx
167         user: xxxx
168         pass: xxxx
169     - name: rack-5-m1
170       architecture: x86_64
171       roles: [network,control]
172       nics:
173       - ifname: eth1
174         spaces: [public]
175         mac: ["xx:xx:xx:xx:xx:xx"]
176       power:
177         type: ipmi
178         address: xx.xx.xx.xx
179         user: xxxx
180         pass: xxxx
181     - name: rack-5-m1
182       architecture: x86_64
183       roles: [network,control]
184       nics:
185       - ifname: eth1
186         spaces: [public]
187         mac: ["xx:xx:xx:xx:xx:xx"]
188       power:
189         type: ipmi
190         address: xx.xx.xx.xx
191         user: xxxx
192         pass: xxxx
193     floating-ip-range: 10.5.15.6,10.5.15.250,10.5.15.254,10.5.15.0/24
194     ext-port: "eth1"
195     dns: 8.8.8.8
196 opnfv:
197     release: c
198     distro: trusty
199     type: nonha
200     openstack: liberty
201     sdncontroller:
202     - type: nosdn
203     storage:
204     - type: ceph
205       disk: /srv
206     feature: odl_l2
207     spaces:
208     - type: public
209       bridge: brPublic
210       cidr: 10.5.15.0/24
211       gateway: 10.5.15.254
212       vlan:
213     - type: external
214       bridge: brExt
215       cidr:
216       gateway:
217       ipaddress: 10.2.117.92
218       vlan:*
219
220 NOTE: If you are using VLAN tagged network then make sure you modify the case $1 section under Enable vlan interface with maas appropriately.
221
222 *'intelpod7' )
223     maas refresh
224     enableautomodebyname eth2 AUTO "10.4.9.0/24" compute || true
225     enableautomodebyname eth2 AUTO "10.4.9.0/24" control || true
226     ;;*
227
228 Deployment of OPNFV using JOID:
229 ===============================
230
231 Once you have done the change in above section then run the following commands to do the automatic deployments.
232
233 ------------
234 MAAS Install
235 ------------
236
237 After integrating the changes as mentioned above run the MAAS install.
238 then run the below commands to start the MAAS deployment.
239
240 ``   ./00-maasdeploy.sh custom <absolute path of config>/labconfig.yaml ``
241 or
242 ``   ./00-maasdeploy.sh custom http://<web site location>/labconfig.yaml ``
243
244 -------------
245 OPNFV Install
246 -------------
247
248 | ``   ./deploy.sh -o mitaka -s odl -t ha -l custom -f none -d xenial``
249 | ``   ``
250
251 ./deploy.sh -o mitaka -s odl -t ha -l custom -f none -d xenial
252
253 NOTE: Possible options are as follows:
254
255 choose which sdn controller to use.
256   [-s <nosdn|odl|opencontrail|onos>]
257   nosdn: openvswitch only and no other SDN.
258   odl: OpenDayLight Lithium version.
259   opencontrail: OpenContrail SDN can be installed with Juno Openstack today.
260   onos: ONOS framework as SDN.
261
262 Mode of Openstack deployed.
263   [-t <nonha|ha|tip>]
264   nonha: NO HA mode of Openstack
265   ha: HA mode of openstack.
266
267 Wihch version of Openstack deployed.
268   [-o <liberty|Mitaka>]
269   liberty: Liberty version of openstack.
270   Mitaka: Mitaka version of openstack.
271
272 Where to deploy
273   [-l <custom | default | intelpod5 >] etc...
274   custom: For bare metal deployment where labconfig.yaml provided externally and not part of JOID.
275   default: For virtual deployment where installation will be done on KVM created using ./00-maasdeploy.sh
276   intelpod5: Install on bare metal OPNFV pod5 of Intel lab.
277   intelpod6
278   orangepod2
279   custom
280
281 what feature to deploy. Comma seperated list
282   [-f <lxd|dvr|sfc|dpdk|ipv6|none>]
283   none: no special feature will be enabled.
284   ipv6: ipv6 will be enabled for tenant in openstack.
285   lxd:  With this feature hypervisor will be LXD rather than KVM.
286   dvr:  Will enable distributed virtual routing.
287   dpdk: Will enable DPDK feature.
288   sfc:  Will enable sfc feature only supported with onos deployment.
289
290 which Ubuntu distro to use.
291   [ -d <trusty|xenial> ]
292
293 OPNFV Scenarios in JOID
294 Following OPNFV scenarios can be deployed using JOID. Seperate yaml bundle will be created to deploy the individual scenario.
295
296 Scenario                 Owner          Known Issues
297 os-nosdn-nofeature-ha    Joid
298 os-nosdn-nofeature-noha  Joid
299 os-odl_l2-nofeature-ha   Joid
300 os-nosdn-lxd-ha          Joid           Yardstick team is working to support.
301 os-nosdn-lxd-noha        Joid           Yardstick team is working to support.
302 os-onos-nofeature-ha     ONOSFW
303 os-onos-sfc-ha           ONOSFW
304
305 ------------
306 Troubleshoot
307 ------------
308
309 By default debug is enabled in script and error messages will be printed on ssh terminal where you are running the scripts.
310
311 To Access of any control or compute nodes.
312 juju ssh <service name>
313 for example to login into openstack-dashboard container.
314
315 juju ssh openstack-dashboard/0
316 juju ssh nova-compute/0
317 juju ssh neutron-gateway/0
318
319 By default juju will add the Ubuntu user keys for authentication into the deployed server and only ssh access will be available.
320