1 # Deploy Openstack Using the Deploy in ODL Integration/CSIT Code
4 > This is a deployer used to deploy Openstack with ODL for Testing
5 > Aimed at improving the ODL CSIT for Openstack Integration.
6 > This Deployer is currently being developed and will be enhanced continuously
7 > This is part of Changes planned in the ticket below
8 https://jira.opendaylight.org/browse/INTTEST-34
9 > If any issues faced, please mail integration-dev@lists.opendaylight.org
13 ### 1node Setup (1 Openstack Control Node)
14 Requires 4 VM instances
15 * 1 for robot execution
19 #### 1node setup Platform Requirements
20 * All Nodes should have this hardware support as minimum
24 ### 3node Setup (3 Openstack Control Nodes for HA)
25 Requires 7 VM instances
26 * 1 for robot execution
27 * 3 Openstack Control Nodes
31 #### 3node setup Platform Requirements
32 * All Control Nodes to have
36 * All Other Nodes should have this hardware support as minimum
40 ### Common Settings for all VM
41 * All VM's will run the latest CentOS (7) distro
42 At the time of creating this text, latest can be found here
43 [CentOS 7.4](http://mirrors.kernel.org/centos/7.4.1708/)
45 * Ensure that one common sudo capable username/password can login to all VM's. i.e login with the same username/password combination
46 is possible in all VM's, preferrably have the same root password in all VM's
48 * Ensure that SELINUX is disabled in all nodes.
50 Edit the file /etc/selinux/config and ensure the line
53 * Ensure the instances can reach internet to download and install packages
55 * If you have Proxy for internet, please configure the proxy details to yum.conf
56 [Ref:Add proxy settings to yum.conf](https://www.centos.org/docs/5/html/yum/sn-yum-proxy-server.html)
64 | |---------------------| |
65 | Robot VM |---------| | |
66 | |---------|-----------|------------|
69 | |---------|-----------| |
70 | Controller |---------| | |
71 | |---------|-----------|------------|
74 | |---------|-----------| |
75 | Compute1 |---------| | |
76 | |---------|-----------|------------|
79 | |---------|-----------| |
80 | Compute2 |---------| | |
81 | |---------|-----------|------------|
85 Data External External
93 | |---------------------| |
94 | Robot VM |---------| | |
95 | |---------|-----------|------------|
98 | |---------|-----------| |
99 |Controller1 |---------| | |
100 | |---------|-----------|------------|
103 | |---------|-----------| |
104 |Controller2 |---------| | |
105 | |---------|-----------|------------|
108 | |---------|-----------| |
109 |Controller3 |---------| | |
110 | |---------|-----------|------------|
114 | haproxy |---------| | |
118 | |---------|-----------| |
119 | Compute1 |---------| | |
120 | |---------|-----------|------------|
123 | |---------|-----------| |
124 | Compute2 |---------| | |
125 | |---------|-----------|------------|
129 Data External External
133 ## Steps to Execute from Robot VM
137 * Install robotframework pre-requisites
139 sudo yum install python-pip git -y
140 pip install robotframework robotframework-sshlibrary
141 pip install robotframework-requests
142 pip install robotframework-httplibrary
147 git clone https://git.opendaylight.org/gerrit/p/integration/test
149 git fetch https://<user-id>@git.opendaylight.org/gerrit/a/integration/test refs/changes/68/63168/41 && git cherry-pick FETCH_HEAD
152 Note: The deployer is not merged yet
155 ### Test 1node Openstack with ODL
157 #### Deploy 1node Openstack with ODL
159 * Run the deployer with pybot
161 pybot --debug ~/debug_1node.log \
162 -v OS_CONTROL_1_IP:<CONTROL_NODE_IP> \
163 -v OS_CONTROL_NODE_IP:<CONTROL_NODE_IP> \
164 -v OS_CONTROL_1_HOSTNAME:<CONTROL_NODE_HOSTNAME> \
165 -v OS_IP:<CONTROL_NODE_IP> \
166 -v NUM_CONTROL_NODES:1 \
167 -v NUM_COMPUTE_NODES:2 \
168 -v OS_COMPUTE_1_IP:<COMPUTE_1_IP> \
169 -v OS_COMPUTE_1_HOSTNAME:<COMPUTE_1_HOSTNAME> \
170 -v OS_COMPUTE_2_IP:<COMUTE_2_IP> \
171 -v OS_COMPUTE_2_HOSTNAME:<COMPUTE_2_HOSTNAME> \
172 -v OPENSTACK_VERSION:pike \
173 -v EXT_BRIDGE:datacenter \
175 -v OS_USER_PASSWORD:<root_password> \
176 -v OS_NODE_PROMPT:# \
177 -v ODL_RPM:http://cbs.centos.org/repos/nfv7-opendaylight-70-release/x86_64/os/Packages/opendaylight-7.0.0-1.el7.noarch.rpm \
178 ~/test/csit/suites/openstack/deploy/00_initial_setup.robot \
179 ~/test/csit/suites/openstack/deploy/01_mysql_setup.robot \
180 ~/test/csit/suites/openstack/deploy/02_rabbitmq_setup.robot \
181 ~/test/csit/suites/openstack/deploy/03_keystone_setup.robot \
182 ~/test/csit/suites/openstack/deploy/04_glance_setup.robot \
183 ~/test/csit/suites/openstack/deploy/05_nova_setup.robot \
184 ~/test/csit/suites/openstack/deploy/06_neutron_setup.robot \
185 ~/test/csit/suites/openstack/deploy/07_csit_setup.robot
188 * After execution, Check the log.html to understand the status of execution
190 * If the status is "PASS", there will be an Openstack Installation with
191 one control node and 2 compute nodes.
193 * All the settings for executing CSIT will be configured.
197 * Once the deployer command mentioned above is successful, you are ready to launch the CSIT Tests
199 * Run the below pybot command to launch any test
203 pybot --debug debug_csit.log \
204 --log log_csit.html --output output_csit.xml \
205 -v CONTROLLER_USER:jenkins \
206 -v NUM_ODL_SYSTEM:1 \
208 -v ODL_SYSTEM_IP:<CONTROL_NODE_IP> \
209 -v ODL_SYSTEM_1_IP:<CONTROL_NODE_IP> \
210 -v OS_CONTROL_NODE_IP:<CONTROL_NODE_IP> \
211 -v OS_CONTROL_NODE_1_IP:<CONTROL_NODE_IP> \
212 -v OS_COMPUTE_1_IP:<COMPUTE_1_IP> \
213 -v OS_COMPUTE_2_IP:<COMPUTE_2_IP> \
215 -v USER_HOME:${HOME} \
216 -v OPENSTACK_BRANCH:stable/pike \
217 ~/test/csit/suites/openstack/connectivity/01_l2_tests.robot \
218 ~/test/csit/suites/openstack/connectivity/02_l3_tests.robot \
221 ### Test 3node Openstack with ODL
223 #### Deploy 3node Openstack with ODL
225 * Run the below pybot command
227 pybot --debug ~/debug_3node.log \
228 -l log_3node_install.html \
229 -v OS_CONTROL_1_IP:<CONTROL_1_IP> \
230 -v OS_CONTROL_1_HOSTNAME:<CONTROL_1_HOSTNAME> \
231 -v OS_CONTROL_2_IP:<CONTROL_2_IP> \
232 -v OS_CONTROL_2_HOSTNAME:<CONTROL_2_HOSTNAME> \
233 -v OS_CONTROL_3_IP:<CONTROL_3_IP> \
234 -v OS_CONTROL_3_HOSTNAME:<CONTROL_3_HOSTNAME> \
235 -v NUM_CONTROL_NODES:3 \
236 -v NUM_COMPUTE_NODES:2 \
237 -v OS_COMPUTE_1_IP:<COMPUTE_1_IP> \
238 -v OS_COMPUTE_1_HOSTNAME:<COMPUTE_1_HOSTNAME> \
239 -v OS_COMPUTE_2_IP:<COMPUTE_2_IP> \
240 -v OS_COMPUTE_2_HOSTNAME:<COMPUTE_2_HOSTNAME> \
241 -v HAPROXY_IP:<HAPROXY_IP> \
242 -v HAPROXY_HOSTNAME:<HAPROXY_HOSTNAME> \
243 -v OPENSTACK_VERSION:pike \
244 -v EXT_BRIDGE:datacenter \
246 -v OS_USER_PASSWORD:<root_password> \
247 -v OS_NODE_PROMPT:# \
248 -v ODL_RPM:http://cbs.centos.org/repos/nfv7-opendaylight-70-release/x86_64/os/Packages/opendaylight-7.0.0-1.el7.noarch.rpm \
249 ~/test/csit/suites/openstack/deploy/00_initial_setup.robot \
250 ~/test/csit/suites/openstack/deploy/01_mysql_setup.robot \
251 ~/test/csit/suites/openstack/deploy/02_rabbitmq_setup.robot \
252 ~/test/csit/suites/openstack/deploy/03_keystone_setup.robot \
253 ~/test/csit/suites/openstack/deploy/04_glance_setup.robot \
254 ~/test/csit/suites/openstack/deploy/05_nova_setup.robot \
255 ~/test/csit/suites/openstack/deploy/06_neutron_setup.robot \
256 ~/test/csit/suites/openstack/deploy/07_csit_setup.robot
258 * After execution, Check the log.html to understand the status of execution
260 * If the status is "PASS", there will be an Openstack Installation with
261 three control nodes as HA and 2 compute nodes along with HAProxy node
262 configured to load balance and ensure HA.
264 * All the settings for executing CSIT will be configured.
268 * Run the below pybot command to execute CSIT
270 ``` source /tmp/stackrc
271 pybot --debug debug_csit.log \
272 --log log_csit.html --output output_csit.xml \
273 -v CONTROLLER_USER:jenkins \
274 -v HA_PROXY_IP:<HAPROXY_IP> \
275 -v NUM_ODL_SYSTEM:3 \
277 -v ODL_SYSTEM_IP:<CONTROL_1_IP> \
278 -v ODL_SYSTEM_1_IP:<CONTROL_1_IP> \
279 -v ODL_SYSTEM_2_IP:<CONTROL_2_IP> \
280 -v ODL_SYSTEM_3_IP:<CONTROL_3_IP> \
281 -v OS_CONTROL_NODE_IP:<CONTROL_1_IP> \
282 -v OS_CONTROL_NODE_1_IP:<CONTROL_1_IP> \
283 -v OS_CONTROL_NODE_2_IP:<CONTROL_2_IP> \
284 -v OS_CONTROL_NODE_3_IP:<CONTROL_3_IP> \
285 -v OS_COMPUTE_1_IP:<COMPUTE_1_IP> \
286 -v OS_COMPUTE_2_IP:<COMPUTE_2_IP> \
288 -v USER_HOME:${HOME} \
289 -v OPENSTACK_BRANCH:stable/pike \
290 /home/evaluatech01/test/csit/suites/openstack/connectivity/01_l2_tests.robot
293 ### Uninstall Openstack
295 * Sometimes, the deployer might fail and may warrant a rerun. At this time the below pybot command can be executed
296 to clear the setup for rerun
301 pybot --debug ~/debug_1node.log \
302 -v OS_CONTROL_1_IP:<CONTROL_NODE_IP> \
303 -v OS_CONTROL_NODE_IP:<CONTROL_NODE_IP> \
304 -v OS_CONTROL_1_HOSTNAME:<CONTROL_NODE_HOSTNAME> \
305 -v OS_IP:<CONTROL_NODE_IP> \
306 -v NUM_CONTROL_NODES:1 \
307 -v NUM_COMPUTE_NODES:2 \
308 -v OS_COMPUTE_1_IP:<COMPUTE_1_IP> \
309 -v OS_COMPUTE_1_HOSTNAME:<COMPUTE_1_HOSTNAME> \
310 -v OS_COMPUTE_2_IP:<COMUTE_2_IP> \
311 -v OS_COMPUTE_2_HOSTNAME:<COMPUTE_2_HOSTNAME> \
312 -v OPENSTACK_VERSION:pike \
313 -v EXT_BRIDGE:datacenter \
315 -v OS_USER_PASSWORD:<root_password> \
316 -v OS_NODE_PROMPT:# \
317 -v ODL_RPM:http://cbs.centos.org/repos/nfv7-opendaylight-70-release/x86_64/os/Packages/opendaylight-7.0.0-1.el7.noarch.rpm \
318 ~/test/csit/suites/openstack/deploy/000_destroy_setup.robot
324 pybot --debug ~/debug_3node.log \
325 -l log_3node_install.html \
326 -v OS_CONTROL_1_IP:<CONTROL_1_IP> \
327 -v OS_CONTROL_1_HOSTNAME:<CONTROL_1_HOSTNAME> \
328 -v OS_CONTROL_2_IP:<CONTROL_2_IP> \
329 -v OS_CONTROL_2_HOSTNAME:<CONTROL_2_HOSTNAME> \
330 -v OS_CONTROL_3_IP:<CONTROL_3_IP> \
331 -v OS_CONTROL_3_HOSTNAME:<CONTROL_3_HOSTNAME> \
332 -v NUM_CONTROL_NODES:3 \
333 -v NUM_COMPUTE_NODES:2 \
334 -v OS_COMPUTE_1_IP:<COMPUTE_1_IP> \
335 -v OS_COMPUTE_1_HOSTNAME:<COMPUTE_1_HOSTNAME> \
336 -v OS_COMPUTE_2_IP:<COMPUTE_2_IP> \
337 -v OS_COMPUTE_2_HOSTNAME:<COMPUTE_2_HOSTNAME> \
338 -v HAPROXY_IP:<HAPROXY_IP> \
339 -v HAPROXY_HOSTNAME:<HAPROXY_HOSTNAME> \
340 -v OPENSTACK_VERSION:pike \
341 -v EXT_BRIDGE:datacenter \
343 -v OS_USER_PASSWORD:<root_password> \
344 -v OS_NODE_PROMPT:# \
345 -v ODL_RPM:http://cbs.centos.org/repos/nfv7-opendaylight-70-release/x86_64/os/Packages/opendaylight-7.0.0-1.el7.noarch.rpm \
346 ~/test/csit/suites/openstack/deploy/000_destroy_setup.robot