document update for Fraser release.
[joid.git] / docs / release / configguide / installerconfig.rst
1 ==================
2 JOID Configuration
3 ==================
4
5 Bare Metal Installations:
6 =========================
7
8 Requirements as per Pharos:
9 ===========================
10
11 Networking:
12 ===========
13
14 **Minimum 2 networks**
15
16 | ``1. First for Admin/Management network with gateway to access external network``
17 | ``2. Second for floating ip network to consume by tenants for floating ips``
18
19 **NOTE: JOID support multiple isolated networks for API, data as well as storage.
20 Based on your network options for Openstack.**
21
22 **Minimum 6 physical servers**
23
24 1. Jump host server:
25
26 | ``   Minimum H/W Spec needed``
27 | ``  CPU cores: 16``
28 | ``  Memory: 32 GB``
29 | ``  Hard Disk: 1(250 GB)``
30 | ``  NIC: if0(Admin, Management), if1 (external network)``
31
32 2. Node servers (minimum 5):
33
34 | ``  Minimum H/W Spec``
35 | ``  CPU cores: 16``
36 | ``  Memory: 32 GB``
37 | ``  Hard Disk: 2(1 TB preferred SSD) this includes the space for ceph as well``
38 | ``  NIC: if0 (Admin, Management), if1 (external network)``
39
40
41 **NOTE: Above configuration is minimum and for better performance and usage of
42 the Openstack please consider higher spec for each nodes.**
43
44 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.
45
46 ------------------------
47 Jump node configuration:
48 ------------------------
49
50 1. Install Ubuntu 16.04.1 LTS server version of OS on the first server.
51 2. Install the git and bridge-utils packages on the server and configure minimum two bridges on jump host:
52
53 brAdm and brExt cat /etc/network/interfaces
54
55 | ``   # The loopback network interface``
56 | ``   auto lo``
57 | ``   iface lo inet loopback``
58 | ``   iface if0 inet manual``
59 | ``   auto brAdm ``
60 | ``   iface brAdm inet static``
61 | ``       address 10.5.1.1``
62 | ``       netmask 255.255.255.0``
63 | ``       bridge_ports if0``
64 | ``   iface if1 inet manual``
65 | ``   auto brExt``
66 | ``   iface brExt inet static``
67 | ``       address 10.5.15.1``
68 | ``       netmask 255.255.255.0``
69 | ``       bridge_ports if1``
70
71 **NOTE: If you choose to use the separate network for management, pulic , data and
72 storage then you need to create bridge for each interface. In case of VLAN tags
73 use the appropriate network on jump-host depend upon VLAN ID on the interface.**
74
75
76 Configure JOID for your lab
77 ===========================
78
79 **Get the joid code from gerritt**
80
81 *git clone https://gerrit.opnfv.org/gerrit/joid.git*
82
83 **Enable MAAS (labconfig.yaml is must and base for MAAS installation and scenario deployment)**
84
85 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.
86
87 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.
88
89 If enabling first time then follow it further.
90 - Create a directory in joid/labconfig/<company name>/<pod number>/ for example
91
92 *mkdir joid/labconfig/intel/pod7/*
93
94 - copy labconfig.yaml from pod6 to pod7
95 *cp joid/labconfig/intel/pod5/\* joid/labconfig/intel/pod7/*
96
97 labconfig.yaml file
98 ===================
99
100 -------------
101 Prerequisite:
102 -------------
103
104 1. Make sure Jump host node has been configured with bridges on each interface,
105 so that appropriate MAAS and JUJU bootstrap VM can be created. For example if
106 you have three network admin, data and floating ip then I would suggest to give names
107 like brAdm, brData and brExt etc.
108 2. You have information about the node MAC address and power management details (IPMI IP, username, password) of the nodes used for deployment.
109
110 ---------------------
111 modify labconfig.yaml
112 ---------------------
113
114 This file has been used to configure your maas and bootstrap node in a
115 VM. Comments in the file are self explanatory and we expect fill up the
116 information according to match lab infrastructure information. Sample
117 labconfig.yaml can be found at
118 https://gerrit.opnfv.org/gerrit/gitweb?p=joid.git;a=blob;f=labconfig/intel/pod6/labconfig.yaml
119
120 *lab:
121   location: intel
122   racks:
123   - rack: pod6
124     nodes:
125     - name: rack-6-m1
126       architecture: x86_64
127       roles: [network,control]
128       nics:
129       - ifname: eth1
130         spaces: [public]
131         mac: ["xx:xx:xx:xx:xx:xx"]
132       power:
133         type: ipmi
134         address: xx.xx.xx.xx
135         user: xxxx
136         pass: xxxx
137     - name: rack-6-m1
138       architecture: x86_64
139       roles: [network,control]
140       nics:
141       - ifname: eth1
142         spaces: [public]
143         mac: ["xx:xx:xx:xx:xx:xx"]
144       power:
145         type: ipmi
146         address: xx.xx.xx.xx
147         user: xxxx
148         pass: xxxx
149     - name: rack-6-m1
150       architecture: x86_64
151       roles: [network,control]
152       nics:
153       - ifname: eth1
154         spaces: [public]
155         mac: ["xx:xx:xx:xx:xx:xx"]
156       power:
157         type: ipmi
158         address: xx.xx.xx.xx
159         user: xxxx
160         pass: xxxx
161     - name: rack-6-m1
162       architecture: x86_64
163       roles: [network,control]
164       nics:
165       - ifname: eth1
166         spaces: [public]
167         mac: ["xx:xx:xx:xx:xx:xx"]
168       power:
169         type: ipmi
170         address: xx.xx.xx.xx
171         user: xxxx
172         pass: xxxx
173     - name: rack-6-m1
174       architecture: x86_64
175       roles: [network,control]
176       nics:
177       - ifname: eth1
178         spaces: [public]
179         mac: ["xx:xx:xx:xx:xx:xx"]
180       power:
181         type: ipmi
182         address: xx.xx.xx.xx
183         user: xxxx
184         pass: xxxx
185     floating-ip-range: 10.5.15.6,10.5.15.250,10.5.15.254,10.5.15.0/24
186     ext-port: "eth1"
187     dns: 8.8.8.8
188 opnfv:
189     release: d
190     distro: xenial
191     type: noha
192     openstack: pike
193     sdncontroller:
194     - type: nosdn
195     storage:
196     - type: ceph
197       disk: /dev/sdb
198     feature: odl_l2
199     spaces:
200     - type: floating
201       bridge: brEx
202       cidr: 10.5.15.0/24
203       gateway: 10.5.15.254
204       vlan:
205     - type: admin
206       bridge: brAdm
207       cidr: 10.5.1.0/24
208       gateway:
209       vlan:*
210
211 Deployment of OPNFV using JOID:
212 ===============================
213
214 Once you have done the change in above section then run the following commands to do the automatic deployments.
215
216 ------------
217 MAAS Install
218 ------------
219
220 After integrating the changes as mentioned above run the MAAS install.
221 then run the below commands to start the MAAS deployment.
222
223 ``   ./03-maasdeploy.sh custom <absolute path of config>/labconfig.yaml ``
224 or
225 ``   ./03-maasdeploy.sh custom http://<web site location>/labconfig.yaml ``
226
227 For deployment of Danbue release on KVM please use the following command.
228
229 ``   ./03-maasdeploy.sh default ``
230
231 This will take approximately 20 minutes to couple hours depending on your
232 environment. This script will do the following:
233
234 1. Create 1 VMs (KVM) for Juju bootstrap.
235 2. Install MAAS on the jumphost.
236 3. Configure the MAAS to enlist and commission a VM for Juju bootstrap node.
237 4. Configure the MAAS to enlist and commission bare metal servers.
238 5. In case of virtual server deployments MAAS will create three more KVM servers and add those servers in MAAS fir deployment.
239
240 When it's done, you should be able to view MAAS webpage (http://<MAAS IP>/MAAS) and see 1 bootstrap node and bare metal servers in the 'Ready' state on the nodes page.
241
242
243 -------------
244 OPNFV Install
245 -------------
246
247 | ``   ./deploy.sh -o pike -s nosdn -t noha -l custom -f none -d xenial -m openstack``
248 | ``   ``
249
250 ./deploy.sh -o pike -s nosdn -t noha -l custom -f none -d xenial -m openstack
251
252 NOTE: Possible options are as follows:
253
254 choose which sdn controller to use.
255   [-s|--sdn <nosdn|odl|opencontrail>]
256   nosdn: openvswitch only and no other SDN.
257   odl: OpenDayLight Boron version.
258   opencontrail: OpenContrail SDN.
259
260 Mode of Openstack deployed.
261   [-t|--type <noha|ha|tip>]
262   noha: NO HA mode of Openstack
263   ha: HA mode of openstack.
264
265 Wihch version of Openstack deployed.
266   [-o|--openstack <pike|ocata>]
267   pike: Pike version of openstack.
268   Ocata: Ocata version of openstack.
269
270 Where to deploy
271   [-l|--lab <custom | default>] etc...
272   custom: For bare metal deployment where labconfig.yaml provided externally and not part of JOID.
273   default: For virtual deployment where installation will be done on KVM created using 03-maasdeploy.sh
274
275 what feature to deploy. Comma seperated list
276   [-f|--feature <lxd|dvr|sfc|dpdk|ipv6|none>]
277   none: no special feature will be enabled.
278   ipv6: ipv6 will be enabled for tenant in openstack.
279   lxd:  With this feature hypervisor will be LXD rather than KVM.
280   dvr:  Will enable distributed virtual routing.
281   dpdk: Will enable DPDK feature.
282   sfc:  Will enable sfc feature only supported with onos deployment.
283
284 which Ubuntu distro to use.
285   [ -d|--distro <xenial> ]
286
287 Which model to deploy
288 JOID introduces the various model to deploy apart from openstack for docker based container workloads.
289 [-m|--model <openstack|kubernetes>]
290   openstack: Openstack which will be used for KVM/LXD container based workloads.
291   kubernetes: Kubernes model will be used for docker based workloads.
292
293 Deploy MAAS or not?
294 [--maasinstall <0|1>]
295   0: Do not deploy MAAS
296   1: Deploy MAAS first.
297
298 Lab Config file location
299 [--labfile <labconfig.yaml file>]
300   location of the file labconfig.yaml if no valid location then virtual MAAS would be deployed.
301
302
303 OPNFV Scenarios in JOID
304 Following OPNFV scenarios can be deployed using JOID. Seperate yaml bundle will be created to deploy the individual scenario.
305
306 Scenario                 Owner          Known Issues
307 os-nosdn-nofeature-ha    Joid
308 os-nosdn-nofeature-noha  Joid
309 os-odl_l2-nofeature-ha   Joid           Floating ips are not working on this deployment.
310 os-nosdn-lxd-ha          Joid           Yardstick team is working to support.
311 os-nosdn-lxd-noha        Joid           Yardstick team is working to support.
312 os-ocl-nofeature-ha      OCL            Keystone V2 has been used.
313 os-ocl-nofeature-noha    OCL            Keystone V2 has been used.
314 k8-nosdn-nofeature-noha  Joid           No support from Functest.
315 k8-nosdn-lb-noha         Joid           No support from Functest.
316 k8-ovn-lb-noha           OVN            No support from Functest.
317
318 Is the deployment done successfully?
319 ------------------------------------
320 Once deploy.sh is complete, use juju status to verify that all deployed unit are in the ready state.
321
322 | ``   juju status ``
323
324 Find the Openstack-dashboard IP address from the *juju status* output, and see if you can log in via browser. The username and password is admin/openstack.
325
326 Optionally, see if you can log in Juju GUI. Juju GUI is on the Juju bootstrap node which is the VM define using 03-maasdeploy.sh. The username and password deplayed at the end of deployment along with url.
327
328 If you deploy ODL, OpenContrail or ONOS, find the IP address of the web UI and login. Please refer to each SDN guides for username/password.
329
330 ------------
331 Troubleshoot
332 ------------
333
334 By default debug is enabled in script and error messages will be printed on ssh terminal where you are running the scripts.
335
336 To Access of any control or compute nodes.
337 juju ssh <service name>/<instance id>
338 for example to login into openstack-dashboard container.
339
340 juju ssh openstack-dashboard/0
341 juju ssh nova-compute/0
342 juju ssh neutron-gateway/0
343
344 All charm jog files are availble under /var/log/juju
345
346 By default juju will add the current user keys for authentication into the deployed server and only ssh access will be available.
347