Add install guide converted to rst form https://wiki.opnfv.org/joid/b_installguide?do=
[joid.git] / docs / configguide / installerconfig.rst
1 =======================
2 Deploy JOID in your LAB
3 =======================
4
5 Bare Metal Installations:
6 ^^^^^^^^^^^^^^^^^^^^^^^^^
7 Requirements as per Pharos:
8 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
9 Networking:
10 ^^^^^^^^^^^
11 **minimum 2 networks**
12
13 | ``1. First for Admin network with gateway to access external network``
14 | ``2. Second for public network to consume by tenants for floating ips``
15
16 **NOTE: JOID support multiple isolated networks for data as well as storage.
17 Based on your network options for Openstack.**
18
19 Minimum 6 physical servers.
20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
21 1. Jump Host server:
22 ~~~~~~~~~~~~~~~~~~~~
23
24 | ``   Minimum H/W Spec needed``
25 | ``  CPU cores: 16``
26 | ``  Memory: 32 GB``
27 | ``  Hard Disk: 1(250 GB)``
28 | ``  NIC: eth0(Admin, Management), eth1 (external network)``
29
30 2. Control Node Servers (minimum 3):
31 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32
33 | ``  Minimum H/W Spec``
34 | ``  CPU cores: 16``
35 | ``  Memory: 32 GB``
36 | ``  Hard Disk: 1(500 GB)``
37 | ``  NIC: eth0(Admin, Management), eth1 (external network)``
38
39 3. Compute Node Servers (minimum 2):
40 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41
42 | ``  Minimum H/W Spec``
43 | ``  CPU cores: 16``
44 | ``  Memory: 32 GB``
45 | ``  Hard Disk: 1(1 TB) this includes the space for ceph as well``
46 | ``  NIC: eth0(Admin, Management), eth1 (external network)``
47
48 **NOTE: Above configuration is minimum and for better performance and usage of
49 the Openstack please consider higher spec for each nodes.**
50
51 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.
52
53 Jump Node configuration:
54 ~~~~~~~~~~~~~~~~~~~~~~~~
55
56 1. Install Ubuntu 14.04 LTS server version of OS on the nodes.
57 2. Install the git and bridge-utils packages on the server and configure minimum two bridges on jump host:
58
59 brAdm and brPublic cat /etc/network/interfaces
60
61 | ``   # The loopback network interface``
62 | ``   auto lo``
63 | ``   iface lo inet loopback``
64 | ``   iface eth0 inet manual``
65 | ``   auto brAdm ``
66 | ``   iface brAdm inet static``
67 | ``       address 10.4.1.1``
68 | ``       netmask 255.255.248.0``
69 | ``       network 10.4.0.0``
70 | ``       broadcast 10.4.7.255``
71 | ``       gateway 10.4.0.1``
72 | ``       # dns-* options are implemented by the resolvconf package, if installed``
73 | ``       dns-nameservers 10.4.0.2``
74 | ``       bridge_ports eth0``
75 | ``   auto brPublic``
76 | ``   iface brPublic inet static``
77 | ``       address 10.2.66.2``
78 | ``       netmask 255.255.255.0``
79 | ``       bridge_ports eth2``
80
81 **NOTE: If you choose to use the separate network for management, data and
82 storage then you need to create bridge for each interface. In case of VLAN tags
83 use the appropriate network on jump-host depend upon VLAN ID on the interface.**
84
85
86 Configure JOID for your lab
87 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
88
89 **Get the joid code from gerritt**
90
91 *git clone https://gerrit.opnfv.org/gerrit/p/joid.git*
92
93 *cd joid/ci*
94
95 **Enable MAAS**
96
97 - Create a directory in maas/<company name>/<pod number>/ for example
98
99 *mkdir maas/intel/pod7/*
100
101
102 - Copy files from pod5 to pod7
103
104 *cp maas/intel/pod5/\* maas/intel/pod7/*
105
106 4 files will get copied: deployment.yaml environments.yaml
107 interfaces.host lxc-add-more-interfaces
108
109 deployment.yaml file
110 ^^^^^^^^^^^^^^^^^^^^
111
112 Prerequisite:
113 ~~~~~~~~~~~~~
114
115
116 modify deployment.yaml
117 ^^^^^^^^^^^^^^^^^^^^^^
118
119 This file has been used to configure your maas and bootstrap node in a
120 VM. Comments in the file are self explanatory and we expect fill up the
121 information according to match lab infrastructure information. Sample
122 deployment.yaml can be found at
123 https://gerrit.opnfv.org/gerrit/gitweb?p=joid.git;a=blob;f=ci/maas/intel/pod5/deployment.yaml
124
125 modify joid/ci/01-deploybundle.sh
126 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
127
128 under section case $3 add the intelpod7 section and make sure you have
129 information provided correctly. Before example consider your network has
130 192.168.1.0/24 your default network. and eth1 is on public network which
131 will be used to assign the floating ip.
132
133 | ``    'intelpod7' )``
134 | ``       # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20``
135 | ``        sed -i -- 's/10.4.1.1/192.168.1.2/g' ./bundles.yaml``
136 | ``       # Choose the external port to go out from gateway to use.``
137 | ``        sed -i -- 's/#        "ext-port": "eth1"/        "ext-port": "eth1"/g' ./bundles.yaml``
138 | ``       ;;``
139
140 NOTE: If you are using seprate data network then add this line below
141 also along with other changes. which represents network 10.4.9.0/24 will
142 be used for data network for openstack
143
144 ``        sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 10.4.9.0\/24/g' ./bundles.yaml``
145
146 modify joid/ci/02-maasdeploy.sh
147 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
148
149 under section case $1 add the intelpod7 section and make sure you have
150 information provided correctly.
151
152 | ``     'intelpod7' )``
153 | ``       cp maas/intel/pod7/deployment.yaml ./deployment.yaml``
154 | ``       ;;``
155
156 NOTE: If you are using VLAN tags or more network for data and storage
157 then make sure you modify the case $1 section under Enable vlan
158 interface with maas appropriately. In the example below eth2 has been
159 used as separate data network for tenants in openstack with network
160 10.4.9.0/24 on compute and control nodes.
161
162 | ``   'intelpod7' )``
163 | ``       maas refresh``
164 | ``       enableautomodebyname eth2 AUTO "10.4.9.0/24" compute || true``
165 | ``       enableautomodebyname eth2 AUTO "10.4.9.0/24" control || true``
166 | ``       ;;``
167
168 Deployment of OPNFV using JOID:
169 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
170
171 Once you have done the change in above section then run the following
172 commands to do the automatic deployments.
173
174 MAAS Install
175 ~~~~~~~~~~~~
176
177 After integrating the changes as mentioned above run the MAAS install.
178 Suppose you name the integration lab as intelpod7 then run the below
179 commands to start the MAAS deployment.
180
181 ``   ./02-maasdeploy.sh intelpod7``
182
183 OPNFV Install
184 ~~~~~~~~~~~~~
185
186 | ``   ./deploy.sh -o liberty -s odl -t ha -l intelpod7 -f none``
187 | ``   ``
188
189 NOTE: Possible options are as follows:
190
191 | ``   choose which sdn controller to use.``
192 | ``     [-s ``\ \ ``]``
193 | ``     nosdn: openvswitch only and no other SDN.``
194 | ``     odl: OpenDayLight Lithium version.``
195 | ``     opencontrail: OpenContrail SDN can be installed with Juno Openstack today.``
196 | ``     onos: ONOS framework as SDN.``
197 | ``     ``
198 | ``     [-t ``\ \ ``] ``
199 | ``     nonha: NO HA mode of Openstack``
200 | ``     ha: HA mode of openstack.``
201 | ``     [-o ``\ \ ``]``
202 | ``     juno: Juno Openstack``
203 | ``     liberty: Liberty version of openstack.``
204 | ``     [-l ``\ \ ``] etc...``
205 | ``     default: For virtual deployment where installation will be done on KVM created using ./02-maasdeploy.sh``
206 | ``     intelpod5: Install on bare metal OPNFV pod5 of Intel lab.``
207 | ``     intelpod6``
208 | ``     orangepod2``
209 | ``     ..``
210 | ``     ..``
211 | ``     ``\ \ ``: if you make changes as per your pod above then please use that.``
212 | ``     [-f ``\ \ ``]``
213 | ``     none: no special feature will be enabled.``
214 | ``     ipv6: ipv6 will be enabled for tenant in openstack.``
215 | ``     ``
216
217 Troubleshoot
218 ~~~~~~~~~~~~
219
220 By default debug is enabled in script and error messages will be printed
221 on ssh terminal where you are running the scripts.
222
223 To access of any control or compute nodes. juju ssh for example to login
224 into openstack-dashboard container.
225
226 | ``   juju ssh openstack-dashboard/0 ``
227 | ``   juju ssh nova-compute/0``
228 | ``   juju ssh neutron-gateway/0``
229
230 By default juju will add the Ubuntu user keys for authentication into
231 the deployed server and only ssh access will be available.