Change the deployment mode from 'nonha' to 'noha'
[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 first server.
47 2. Install the git and bridge-utils packages on the server and configure minimum two bridges on jump host:
48
49 brAdm and brExt cat /etc/network/interfaces
50
51 | ``   # The loopback network interface``
52 | ``   auto lo``
53 | ``   iface lo inet loopback``
54 | ``   iface if0 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 | ``   iface if1 inet manual``
61 | ``   auto brExt``
62 | ``   iface brExt inet static``
63 | ``       address 10.5.15.1``
64 | ``       netmask 255.255.255.0``
65 | ``       bridge_ports if1``
66
67 **NOTE: If you choose to use the separate network for management, pulic , data and
68 storage then you need to create bridge for each interface. In case of VLAN tags
69 use the appropriate network on jump-host depend upon VLAN ID on the interface.**
70
71
72 Configure JOID for your lab
73 ===========================
74
75 **Get the joid code from gerritt**
76
77 *git clone https://gerrit.opnfv.org/gerrit/joid.git*
78
79 **Enable MAAS (labconfig.yaml is must and base for MAAS installation and scenario deployment)**
80
81 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.
82
83 NOTE: If MAAS is pre installed without 03-maasdeploy.sh not supported. We strongly suggest to use 03-maaseploy.sh to deploy the MAAS and JuJu environment.
84
85 If enabling first time then follow it further.
86 - Create a directory in joid/labconfig/<company name>/<pod number>/ for example
87
88 *mkdir joid/labconfig/intel/pod7/*
89
90 - copy labconfig.yaml from pod6 to pod7
91 *cp joid/labconfig/intel/pod5/\* joid/labconfig/intel/pod7/*
92
93 labconfig.yaml file
94 ===================
95
96 -------------
97 Prerequisite:
98 -------------
99
100 1. Make sure Jump host node has been configured with bridges on each interface,
101 so that appropriate MAAS and JUJU bootstrap VM can be created. For example if
102 you have three network admin, data and floating ip then I would suggest to give names
103 like brAdm, brData and brExt etc.
104 2. You have information about the node MAC address and power management details (IPMI IP, username, password) of the nodes used for deployment.
105
106 ---------------------
107 modify labconfig.yaml
108 ---------------------
109
110 This file has been used to configure your maas and bootstrap node in a
111 VM. Comments in the file are self explanatory and we expect fill up the
112 information according to match lab infrastructure information. Sample
113 labconfig.yaml can be found at
114 https://gerrit.opnfv.org/gerrit/gitweb?p=joid.git;a=blob;f=labconfig/intel/pod6/labconfig.yaml
115
116 *lab:
117   location: intel
118   racks:
119   - rack: pod6
120     nodes:
121     - name: rack-6-m1
122       architecture: x86_64
123       roles: [network,control]
124       nics:
125       - ifname: eth1
126         spaces: [public]
127         mac: ["xx:xx:xx:xx:xx:xx"]
128       power:
129         type: ipmi
130         address: xx.xx.xx.xx
131         user: xxxx
132         pass: xxxx
133     - name: rack-6-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-6-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-6-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-6-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     floating-ip-range: 10.5.15.6,10.5.15.250,10.5.15.254,10.5.15.0/24
182     ext-port: "eth1"
183     dns: 8.8.8.8
184 opnfv:
185     release: d
186     distro: xenial
187     type: noha
188     openstack: newton
189     sdncontroller:
190     - type: nosdn
191     storage:
192     - type: ceph
193       disk: /dev/sdb
194     feature: odl_l2
195     spaces:
196     - type: floating
197       bridge: brEx
198       cidr: 10.5.15.0/24
199       gateway: 10.5.15.254
200       vlan:
201     - type: admin
202       bridge: brAdm
203       cidr: 10.5.1.0/24
204       gateway:
205       vlan:*
206
207 Deployment of OPNFV using JOID:
208 ===============================
209
210 Once you have done the change in above section then run the following commands to do the automatic deployments.
211
212 ------------
213 MAAS Install
214 ------------
215
216 After integrating the changes as mentioned above run the MAAS install.
217 then run the below commands to start the MAAS deployment.
218
219 ``   ./03-maasdeploy.sh custom <absolute path of config>/labconfig.yaml ``
220 or
221 ``   ./03-maasdeploy.sh custom http://<web site location>/labconfig.yaml ``
222
223 For deployment of Danube release on KVM please use the following command.
224
225 ``   ./03-maasdeploy.sh default ``
226
227 -------------
228 OPNFV Install
229 -------------
230
231 | ``   ./deploy.sh -o newton -s nosdn -t noha -l custom -f none -d xenial -m openstack``
232 | ``   ``
233
234 ./deploy.sh -o newton -s nosdn -t noha -l custom -f none -d xenial -m openstack
235
236 NOTE: Possible options are as follows:
237
238 choose which sdn controller to use.
239   [-s <nosdn|odl|opencontrail|onos>]
240   nosdn: openvswitch only and no other SDN.
241   odl: OpenDayLight Boron version.
242   opencontrail: OpenContrail SDN.
243   onos: ONOS framework as SDN.
244
245 Mode of Openstack deployed.
246   [-t <noha|ha|tip>]
247   noha: NO HA mode of Openstack
248   ha: HA mode of openstack.
249
250 Wihch version of Openstack deployed.
251   [-o <Newton|Mitaka>]
252   Newton: Newton version of openstack.
253   Mitaka: Mitaka version of openstack.
254
255 Where to deploy
256   [-l <custom | default>] etc...
257   custom: For bare metal deployment where labconfig.yaml provided externally and not part of JOID.
258   default: For virtual deployment where installation will be done on KVM created using 03-maasdeploy.sh
259
260 what feature to deploy. Comma seperated list
261   [-f <lxd|dvr|sfc|dpdk|ipv6|none>]
262   none: no special feature will be enabled.
263   ipv6: ipv6 will be enabled for tenant in openstack.
264   lxd:  With this feature hypervisor will be LXD rather than KVM.
265   dvr:  Will enable distributed virtual routing.
266   dpdk: Will enable DPDK feature.
267   sfc:  Will enable sfc feature only supported with onos deployment.
268
269 which Ubuntu distro to use.
270   [ -d <trusty|xenial> ]
271
272 Which model to deploy
273 JOID introduces the various model to deploy apart from openstack for docker based container workloads.
274 [-m <openstack|kubernetes>]
275   openstack: Openstack which will be used for KVM/LXD container based workloads.
276   kubernetes: Kubernes model will be used for docker based workloads.
277
278 OPNFV Scenarios in JOID
279 Following OPNFV scenarios can be deployed using JOID. Seperate yaml bundle will be created to deploy the individual scenario.
280
281 Scenario                 Owner          Known Issues
282 os-nosdn-nofeature-ha    Joid
283 os-nosdn-nofeature-noha  Joid
284 os-odl_l2-nofeature-ha   Joid           Floating ips are not working on this deployment.
285 os-nosdn-lxd-ha          Joid           Yardstick team is working to support.
286 os-nosdn-lxd-noha        Joid           Yardstick team is working to support.
287 os-onos-nofeature-ha     ONOSFW
288 os-onos-sfc-ha           ONOSFW
289 k8-nosdn-nofeature-noha Joid            No support from Functest and Yardstick
290 k8-nosdn-lb-noha         Joid           No support from Functest and Yardstick
291
292 ------------
293 Troubleshoot
294 ------------
295
296 By default debug is enabled in script and error messages will be printed on ssh terminal where you are running the scripts.
297
298 To Access of any control or compute nodes.
299 juju ssh <service name>/<instance id>
300 for example to login into openstack-dashboard container.
301
302 juju ssh openstack-dashboard/0
303 juju ssh nova-compute/0
304 juju ssh neutron-gateway/0
305
306 All charm jog files are availble under /var/log/juju
307
308 By default juju will add the current user keys for authentication into the deployed server and only ssh access will be available.
309