OMF-Install-Logbook.txt

Thierry Rakotoarivelo, 18/09/2009 11:48 am

Download (20.5 kB)

 
1
NOTE: Yellow Box only 
2
- eth1 is interface located higher, above the two usb.
3
- eth1 is the one PXE enabled, however if PXE link is on eth0's address, node will still
4
  boot PXE when the link is present. This is currently the case in our new install. Might
5
  want to reverse dhcp.conf to reflect that at some stage...
6
  (i.e. at the moment our eth0 on nodes have 192.168.1.10x addresses, and NA use eth0 for 
7
  control message, while PXE is enabled only on eth1.... what we should have is NA using 
8
  eth1 with PXE and IP 192.168.1.10x and eth0 having other such as 10.0.0.x for the fixed
9
  experimental network)
10

    
11

    
12
FIRST THING:
13
	- Install fresh Linux distribution on a server machine 
14
	and at least one experimental machines (here we used Ubuntu)
15
	- The server machine will have the hostname 'theserver'
16
	- The first experimental machine will have the hostname 'node001', etc...
17

    
18
	- Remove annoying network-manager on 'theserver' and any 'node00X'
19

    
20
		$ sudo apt-get remove network-manager
21

    
22
------------------ ------------------  -----------------
23
------------------ ------------------  -----------------
24
------------------ ------------------  -----------------
25

    
26
STEP 1 - Installation of Supporting Services on 'theserver'
27

    
28

    
29

    
30
------------------ Network and DHCP -----------------
31

    
32
- OPTIONAL: in this example, this machine is connected to the 
33
  outside world via its 'eth0' interface. This short step configures
34
  this eth0 interface and is not necessary if this machine is only
35
  connected to the MNet.
36

    
37
	$ sudo vi /etc/network/interfaces
38
	
39
	Add lines:
40
		auto eth0
41
		iface eth0 inet dhcp
42

    
43
	$ sudo apt-get install resolvconf
44
	$ sudo /etc/init.d/networking restart
45

    
46
- Configure IP address on MNet interface:
47
  In this example, the machine is attached to MNet via eth1 
48
  and will have the IP 192.168.1.1 on the MNet 192.168.1.0
49
  (also in this example, this machine is connected to the
50
  outside world via another interface 'eth0' configured via
51
  dhcp info from another server out of MNet)
52

    
53
	$ sudo vi /etc/network/interfaces
54

    
55
	Add lines:
56
		auto eth1
		iface eth1 inet static
		address 192.168.1.1
		netmask 255.255.255.0
		network 192.168.1.0
		broadcast 192.168.1.255
57
		# This line should be commented if this machine
58
		# is connected to the outside world via another
59
		# interface, such as 'eth0' in our case
60
		#gateway 192.168.1.1
61

    
62
- Restart networking service:
63
	$ sudo /etc/init.d/networking restart
64

    
65
- Install DHCP server:
66
	$ sudo apt-get install dhcp3-server
67

    
68
- Configure DHCP server to serve request on the MNet:
69
  In this example the machine is attached to MNet via eth1
70

    
71
	$ sudo vi /etc/default/dhcp3-server
72

    
73
	Add lines:
74
		INTERFACES="eth1"
75

    
76
- Configure DHCP server parameters:
77
	$ sudo vi /etc/dhcp3/dhcpd.conf
78

    
79
	Comment lines:
80
		# option domain-name ...
81
		# option domain-name-servers ...
82

    
83
	Add lines:
84
		# Optional: tell DHCP not to operate on any existing subnet 
85
		# you might have on the network attached to 'eth1'
86
		subnet xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy { }
87

    
88
	Add lines:
89
		# These are the DHCP config parameter for 
90
		# the 192.168.1.0 subnet.
91
		# This machine will also be the router, name server, and
92
		# repository for PXE boot for that subnet.
93
		# Experimental machines will be given IP incremental addresses
94
		# starting with 192.168.1.101
95
		# 
96
		subnet 192.168.1.0 netmask 255.255.255.0 {
97
		  range 192.168.1.100 192.168.1.250;
98
		  option domain-name-servers 192.168.1.1;
99
		  option domain-name "yourtestbed.yourdomain.com";
100
		  use-host-decl-names on;
101
		  option routers 192.168.1.1;
102
		  option broadcast-address 192.168.1.255;
103
		  filename "/pxelinux.0";
104
		  next-server 192.168.1.1;
105
	
106
		  # First experimental machine - 001
107
		  # Replace 'xx' with the MAC address of the network interface 
108
		  # connected to the MNet on that machine 
109
		  host node001 {
110
		    hardware ethernet xx:xx:xx:xx:xx:xx;
111
		    fixed-address 192.168.1.101;
112
		  }	
113

    
114
		  etc....
115
		}
116

    
117
- Restart the DHCP service:
118
	$ sudo /etc/init.d/dhcp3-server restart
119

    
120
- Add hostnames in your '/etc/hosts'
121
	$ sudo vi /etc/hosts
122

    
123
	Add lines:
124
		127.0.0.1		localhost
125
		127.0.1.1		theserver.yourtestbed.yourdomain.com	theserver
126
		192.168.1.1		theserver.yourtestbed.yourdomain.com	theserver    
127
		# Names for our Experimental nodes
128
		192.168.1.101	node001.yourtestbed.yourdomain.com		node001
129
		etc...
130

    
131
- TEST: 
132
	Reboot your experimental machine node001 and check that it has the 
133
	correct IP, according to the config you entered in dhcpd.conf
134
	
135
	We assume that node001 is the "at least one experimental machine" on
136
	which you installed a fresh copy of ubuntu at the beginning of this 
137
	log book.
138

    
139
	$ ping 192.168.1.101
140
	$ ping node001
141

    
142
	(if you have more experimental machine installed...)
143
	$ ping 192.168.1.102
144
	etc...
145

    
146

    
147
------------------ TFTP Server and PXE Boot -----------------
148

    
149
- install a TFTP server with support for RFC-1784 and RFC-2349, e.g. 'atftpd' or 'tftpd-hpa'
150

    
151
	$ sudo apt-get install tftpd-hpa
152

    
153
- configure the TFTP server
154

    
155
	$ sudo vi /etc/default/tftpd-hpa
156
	
157
	Change lines:
158
		RUN_DAEMONS="yes"
159
		OPTIONS="-l -s -v /tftpboot"
160

    
161
- create "/tftpboot" directory
162

    
163
	$ sudo mkdir /tftpboot
164

    
165
- start tftpd daemon
166

    
167
	$ sudo /etc/init.d/tftpd-hpa start
168

    
169
- retrieve 'pxelinux.0' bootloader for your distribution
170

    
171
	$ wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/pxelinux.0
172
	$ sudo mv pxelinux.0 /tftpboot
173

    
174
- create "/tftpboot/pxelinux.cfg" directory
175

    
176
	$ sudo mkdir /tftpboot/pxelinux.cfg
177

    
178
- create your own Kernel and Disk image for PXE boot
179

    
180
	SEE Appendix on HOW-TO create Kernel and Disk Image for PXE boot
181

    
182
- copy your Kernel and Disk Image to "/tftpboot"
183

    
184
	$ sudo cp mykernel-pxe-2.6 /tftpboot	
185
	$ sudo cp myinitrd-pxe-2.6 /tftpboot
186

    
187
- create a PXE boot configuration file for this particular kernel+disk image
188

    
189
	$ sudo vi /tftpboot/pxelinux.cfg/mypxeconfig
190

    
191
	Add lines:
192
		DEFAULT linux
193
		LABEL linux
194
		KERNEL mykernel-pxe-2.6
195
		APPEND rw init=/sbin/init initrd=myinitrd-pxe-2.6 console=ttyS0,9600
196
		DISPLAY message.txt
197
		PROMPT 1
198
		TIMEOUT 1
199

    
200
- create a default PXE boot configuration, where default boot = boot from local hard-drive:
201

    
202
	$ sudo vi /tftpboot/pxelinux.cfg/default
203

    
204
	Add lines:
205
		DEFAULT harddrive
206
		LABEL harddrive
207
		localboot 0	
208

    
209
- TEST: 
210
	Check that tftp daemon is running:
211
		
212
		$ sudo ps ax | grep tftp
213
	
214
	We will now try PXE boot for node001 which has IP 192.168.1.101.
215

    
216
	We assume that node001 is the "at least one experimental machine" on
217
	which you installed a fresh copy of ubuntu at the beginning of this 
218
	log book.
219
	
220
	Create link with node001's IP address in '/tftpboot/pxelinux.cfg'
221

    
222
		$ cd /tftpboot/pxelinux.cfg
223
		$ sudo ln -s mypxeconfig C0A80165
224

    
225
	Note: to PXE-boot a node with IP address XX, one has to create a symoblic
226
      link in /tftpboot/pxelinux.cfg towards the PXE config file to boot from. The
227
	name of this link should be the node's IP address in hexadecimal.
228

    
229
	More info on PXE-boot at: http://syslinux.zytor.com/pxe.php
230

    
231
	Reboot node001 and check that it effectively boots via PXE using the 
232
	kernel 'mykernel-pxe-2.6' and disk image 'myinitrd-pxe-2.6'
233
	(e.g. plug a display and visually check, or a console, etc...)
234

    
235
	Then remove the link in '/tftpboot/pxelinux.cfg'
236

    
237
		$ sudo rm -f C0A80165
238

    
239
	Reboot node001 and check that it effectively boots from its local 
240
	hard-drive
241

    
242

    
243
------------------ MySQL Server and Berkeley DB -----------------
244

    
245
- Install MySQL server:
246

    
247
	$ sudo apt-get install mysql-server
248

    
249
  (after install, apt-get goes to configure the server, nothing special
250
  should be done there apart from setting a passwd for the 'root' mysql user)
251

    
252
- Create the 'orbit' account in mysql:
253

    
254
	$ mysql -u root -p
255
	
256
	Inside mysql:
257
		> use mysql;
258
		> create user orbit;
259
		> grant all on *.* to 'orbit';
260
		> quit;
261

    
262
	$ mysql -u orbit -p
263

    
264
	Inside mysql:
265
		> set password=password('orbit');
266
		> quit;
267
	
268
	NOTE: for unknown reason the mysql v5 on ubuntu hardy did not correctly 
269
	set the password for orbit when using the command:
270
	  > create user orbit identified by 'orbit'
271

    
272
	NOTE: On some distro, you might have to specify the domain 'localhost' in 
273
	addition to the user, i.e. 'orbit'@'localhost' instead of just 'orbit'
274

    
275
- Check that the MySQL socket is correctly installed in '/tmp':
276

    
277
	Ruby's MySQL implementation is looking for the MySQL socket at the 
278
	following path: 
279
		'/tmp/mysql.sock'
280

    
281
	However, MySQL v5 install on ubuntu hardy places that socket file at:
282
		'/var/run/mysqld/mysqld.sock'
283

    
284
	If this is the case, you have to create a symlink:
285
		$ sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
286

    
287
	NOTE: This symlink might be removed on reboot of your system... if so
288
	place the above symlink creation line in one of your system's startup scripts.
289

    
290
	NOTE: If the above link is not created, the GS Inventory will return the following
291
	errors when it tries to connect to the Inventory database:
292
		' Cannot connect to the Inventory Database '
293
		' No such file or directory - /tmp/mysql.sock: '
294
	
295

    
296
- Install Berkeley DB libraries. These libraries should be installed by default 
297
  with most install config (check if /usr/lib/libdb-X.Y.so exist on your machine).
298
  However, if not, install it using: 
299
	
300
	$ sudo apt-get install libdbX.Y
301

    
302
- TEST:
303
	Login into mysql as user 'orbit' with password 'orbit', 
304
	then create a database, play with it, then delete it.
305

    
306
	$ mysql -u orbit -p
307

    
308
	Inside mysql:
309
		> create database mytest;
310
		> use mytest;
311
		> create table mytable (myfield varchar(20));
312
		> show tables;
313
		etc...
314
		> drop mytest;
315
		> quit;
316

    
317

    
318
------------------ Install Frisbee -----------------
319

    
320
- Download the Frisbee source code from Emulab:
321

    
322
	Go to Emulab webpage and retrieve the URL for the latest source
323
	code release (in this example, the release of 30/06/08)
324

    
325
	Emulab webpage: http://www.emulab.net/software.php3
326

    
327
	$ wget http://www.emulab.net/downloads/emulab-080630.tar.gz
328

    
329
	$ tar xzf emulab-080630.tar.gz
330

    
331
- If you do not have the libC headers and ZLib headers currently 
332
  installed, you need to install them:
333
	
334
	$ sudo apt-get install libc6-dev
335
	$ sudo apt-get install zlib1g-dev
336

    
337

    
338
- Compile the stand-alone imagezip software
339

    
340
	$ cd testbed-080630/os/imagezip
341

    
342
	$ vi Makefile-linux.sa
343
	
344
	Comment lines:
345
		
346
		#ifdef WITH_NTFS
347
		...
348
		#endif
349

    
350
	Add 'disksize.o' to targets 'imagezip' and 'imageunzip'
351
		
352
		imagezip: disksize.o imagezip.o (etc...)
353
			$(CC) $(CFLAGS) disksize.o imagezip.o (etc..)
354

    
355
		(Do the same for 'imageunzip' target)
356

    
357
	$ make -f Makfile-linux.sa
358

    
359
	$ sudo cp imagezip imageunzip imagedump /usr/bin
360

    
361
- Compile the stand-alone frisbee software
362

    
363
	$ cd testbed-080630/os/frisbee.redux
364

    
365
	$ vi Makefile-linux.sa
366

    
367
	Add 'disksize.o' to the list of objects to link in the targets
368
	'frisbee' and 'frisbeed'
369

    
370
		frisbee: $(CLIENTOBJS)
371
			$(CC) $(IMAGEZIPDIR)/disksize.o (etc...)
372

    
373
		frisbeed: $(SERVEROBJS)
374
			$(CC) $(IMAGEZIPDIR)/disksize.o (etc...)
375

    
376
	$ make -f Makefile-linux.sa
377

    
378
	$ sudo cp frisbee frisbeed /usr/sbin
379

    
380
	
381

    
382
------------------ Install and Configure NFS Server -----------------
383

    
384
- Install the packages:
385
	
386
	$ sudo apt-get install nfs-kernel-server nfs-common portmap
387

    
388
- Configure portmap:
389

    
390
	Make sure that portmap do NOT bind on loopback:
391
	
392
	$ sudo dpkg-reconfigure portmap
393

    
394
	$ sudo /etc/init.d/portmap restart
395

    
396
- Create a directory to be exported via NFS. This directory will 
397
  contain the saved disk images from the experimental machines.
398

    
399
	$ sudo mkdir /export/
400
	$ sudo mkdir /export/omf
401
	$ sudo mkdir /export/omf/image
402
	$ sudo chmod 777 /export/omf
403
	$ sudo chmod 777 /export/omf/image
404

    
405
- Configure NFS:
406

    
407
	$ sudo vi /etc/exports
408

    
409
	Add lines:
410
		/export/omf/image *(rw,async)
411

    
412
	$ sudo /etc/init.d/nfs-kernel-server restart 
413

    
414
- TEST:
415
	Install NFS client on another machine connected to MNet.
416
	Mount the remote shared directory '/export/omf/image' on that
417
	machine.
418

    
419
	$ sudo apt-get install nfs-common portmap	
420
	$ cd /tmp
421
	$ mkdir test_mount_point
422
	$ sudo mount 192.168.1.1:/export/omf/image test_mount_point
423
	$ touch test_mount_point/testing_nfs.txt
424
	$ umount test_mount_point
425

    
426
	Check on the server side that the 'testing_nfs.txt' file created
427
	remotely is indeed present:
428
	
429
	$ ls /export/omf/image
430
	
431

    
432

    
433
------------------ ------------------  -----------------
434
------------------ ------------------  -----------------
435
------------------ ------------------  -----------------
436

    
437

    
438
STEP 2 - Installation of Grid Services (GS) Software on 'theserver'
439

    
440

    
441
------------------ Install the GS Daemon Software -----------------
442

    
443
- Install the required 'libruby1.8' and 'libldap-ruby1.8' libraries:
444

    
445
	$ sudo apt-get install libruby1.8 libldap-ruby1.8
446

    
447
- Install the GS software package from the OMF release:
448

    
449
	$ sudo dpkg --force-depends --install gridservices2_2.1.0_all.deb
450

    
451
	(The '--force-depends' option is there to turn into warning the error
452
	about the dependency on 'frisbee' package. Since we already compiled 
453
	and installed the Frisbee software from source earlier, there is no 
454
	need to install the 'frisbee' package.
455
	We did show how to compile Frisbee from source because the binaries
456
	inside the winlab 'frisbee' package might not be compatible with all
457
	linux installs).
458

    
459
------------------ Configure the GS Daemon Software -----------------
460

    
461
- Configure the main GS daemon:
462

    
463
	$ sudo vi /etc/gridservices2/gridservices.cfg
464

    
465
	Change following line to use your own preferred port:
466
	
467
		OPTS="--port 5022"
468

    
469
- Enable the cmcStub GS service:
470

    
471
	$ sudo mkdir /etc/gridservices2/enabled
472
	$ cd /etc/gridservices2/enabled
473
	$ sudo ln -s /etc/gridservices2/available/cmcStub.yaml
474

    
475
- Start the GS daemon:
476

    
477
	$ sudo /etc/init.d/gridservices2 start
478

    
479
- TEST:
480
	The outputs of the following commands should show a 'ruby' process 
481
	running the GS software on port 5022:
482
		$ sudo ps ax | grep ruby
483
		$ sudo lsof -i | grep ruby
484

    
485
	The outputs of the following commands should show you the following 
486
	message from the GS daemon:
487
		$ wget http://192.168.1.1:5022/ -O output.txt
488
		$ more output.txt
489
	
490
			<?xml version='1.0'?>
491
			<serviceGroups>
492
				<serviceGroup path='/cmc' name='cmc'>
493
					<info> Information on available testbed (etc..)
494
					</info>
495
				</serviceGroup>
496
			</serviceGroups>	
497

    
498

    
499
	You can also try the same 'wget' command from the machine 'node001'.
500

    
501
	The log file at '/var/log/gridservices2.log' gives you some information
502
	about the recent GS activities:
503
		$ tail /var/log/gridservices2.log
504

    
505

    
506
------------------ Configure the CMC Stub GS service -----------------
507

    
508
- Configure 'cmcStub.yaml'
509

    
510
	$ sudo vi /etc/gridservices2/enabled/cmcStub.yaml
511

    
512
	Change following lines:
513
	
514
		listAll : |
515
		  (101..150)..to_a.map {|i| [i, 0]}
516
		listStatus: |
517
		  (101..150).to_a.map {|i| [i, 0, 'POWERON']}
518

    
519
	NOTE: Use spaces to indent and NOT tabs!
520
	NOTE: The above assumes we have 50 experimental nodes, which were 
521
		allocated IP addresses from 192.168.1.101 to 192.168.1.150 by
522
		the DHCP server we configured earlier.	
523

    
524
- Restart the GS daemon:
525

    
526
	$ sudo /etc/init.d/gridservices2 restart
527

    
528
	(if you get some errors about 'check_config', do a stop then start)
529

    
530
- TEST:
531
	Query the cmcStub GS service for the status of all nodes (aka experimental
532
	machines). Since it is a stub, it should reply that all nodes are in the
533
	'POWERON' state).
534
	
535
		$ wget http://192.168.1.1:5022/cmc/allStatus -O states.txt
536
		$ more states.txt
537

    
538
		$ sudo /etc/init.d/gridservices2 start 
539

    
540
			<TESTBED_STATUS>
541
				<detail>
542
					<node name='n_101_0' x='101' y='0' state='POWERON'/>
543
					
544
					(etc... for other nodes)
545
				</detail>
546
			</TESTBED_STATUS>
547

    
548

    
549

    
550
------------------ Configure the Inventory GS service -----------------
551

    
552
NOTE: if you have this error in the GS log:
553
	Cannot connect to the Inventory Database - No such file or directory - /tmp/mysql.sock: 
554
You need to do this:
555
	/tmp/mysql.sock -> /var/run/mysqld/mysqld.sock
556
(stupid Ruby-mysql has hardcoded path to mysql.sock....)
557

    
558

    
559

    
560
------------------ ------------------  -----------------
561
------------------ ------------------  -----------------
562
------------------ ------------------  -----------------
563

    
564

    
565
STEP 3 - Installation of Node Handler (NH) Software on 'theserver'
566

    
567

    
568
------------------ Install and Configure the NH Software -----------------
569

    
570
- Install the NH software package from the OMF release:
571

    
572
	$ sudo dpkg --force-depends --install nodehandler4_4.2.0_all.deb
573

    
574
- Configure the NH software:
575

    
576
	$ cd /etc/nodehandler4/
577
	$ sudo cp nodehandler.yaml.nicta nodehandler.yaml
578

    
579
	$ sudo vi nodehandler.yaml
580

    
581
	Change lines (again use spaces instead of tabs):
582

    
583
	default:
584

    
585
		X_MAX: 255
586
		Y_MAX: 1 	
587

    
588
		oml:
589
		  local_host: '192.168.1.1'
590
	
591
		frisbee:
592
		  default_disk: '/dev/sda'
593

    
594
		controlIP: |
595
		  |x, y|
596
		    "192.168.1.#{x}"
597

    
598
		coord2IP: |
599
		  |x, y|
600
		    name = "192.168.1.#{x}"
601

    
602
- TEST:
603

    
604
	Call the NH to request the status of the experimental machine 'node001'
605

    
606
	$ omf stat [101,0]
607
	
608
	The output should look like:
609
		-----------------------------------------------
610
 		Testbed : indoor
611
 		 Node n_101_0 - State: POWERON
612
		-----------------------------------------------
613

    
614
	(NOTE: with our particular notation, if we want 'omf stat all' to 
615
	
616

    
617
------------------ ------------------  -----------------
618
------------------ ------------------  -----------------
619
------------------ ------------------  -----------------
620

    
621

    
622
STEP 3 - Installation of Node Agent (NA) Software on 'node001' machine
623

    
624

    
625
------------------ Install and Configure supporting services -----------------
626

    
627
- After fresh ubuntu install, remove and add some services:
628

    
629
	$ sudo apt-get remove network-manager
630
	$ sudo apt-get install ssh
631

    
632
- Configure some system parameters:
633

    
634
	$ sudo vi /etc/hosts
635

    
636
	Add lines:
637
		127.0.0.1		localhost
638
		127.0.1.1		node001.yourtestbed.yourdomain.com	node001
639
		192.168.1.101		node001.yourtestbed.yourdomain.com	node001    
640
		# Names for our Server with GS
641
		192.168.1.1		yourserver.yourtestbed.yourdomain.com	yourserver
642

    
643
- Make sure that the interface which supports PXE boot is ALWAYS assigned 'eth1'
644
  (Persistent naming of PXE-enabled interface to 'eth1')
645

    
646
	You need to install 'udev' (rule-based device node and kernel event manager)
647
	(if not already installed by default)
648

    
649
	$ sudo apt-get install udev
650

    
651
	Then configure udev to permanently assign 'eth1' to PXE-enabled interface
652

    
653
	$ sudo vi /etc/udev/rules.d/70-persistent-net.rules
654

    
655
	Change lines so that 'eth1' is paired with the MAC address of the PXE-enabled interface:
656

    
657
	SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
658

    
659

    
660
------------------ Install and Configure the NA Software -----------------
661

    
662
- Install required dependencies packages from the OMF release:
663

    
664
	$ sudo dpkg --install liboml-transport_2.0.3_i386.deb
665
	$ sudo dpkg --install liboml-client_2.0.4_i386.deb
666
	$ sudo dpkg --install liboml-filters_2.0.3_i386.deb
667

    
668
- Install the NA software from the OMF release
669

    
670
	$ sudo dpkg --force-depends --install nodeagent4_4.3.0_all.deb
671

    
672
	(force-depends is used here to ignore warning about dependency on 'ruby'
673
	package. The NA package carries its own ruby interpreter)
674

    
675
- Configure the NA daemon:
676

    
677
	$ sudo vi /etc/nodeagent4/nodeagent.yaml
678

    
679
	Comment lines for option i) "Multicast Communicator".
680

    
681
	Uncomment lines for option ii) "TCP Server Communicator".
682

    
683
	If needed, modify 'local_if' value to the interface connected to MNet:
684

    
685
		local_if: eth0
686

    
687
- Restart the NA Daemon:
688

    
689
	$ sudo /etc/init.d/nodeagent4 restart
690

    
691
	(if you get some errors about 'check_config', do a stop then start)
692

    
693
- TEST:
694
	1) The outputs of the following commands should show a 'ruby' process 
695
	running the NA software on port 9026:
696
		$ sudo ps ax | grep ruby
697
		$ sudo lsof -i | grep ruby
698

    
699
	2) The log file at '/var/log/nodeAgent4.log' gives you some information
700
	about the recent NA activities:
701
		$ tail /var/log/nodeAgent4.log
702

    
703
	3) Run the sample experiment script exp1.rb. This experiment run the
704
	'ls -la' command on the experimental node. The command output (the list
705
	of files on the node) is forwarded to the server running the NH.
706
		
707
	- First, edit the experiment script to set the node to use
708

    
709
		$ vi exp1.rb
710
		
711
		Change the lines (if using 'node001' then use '[101,1]'):
712
			
713
			defGroup('mygroup', [101,1]) 
714

    
715
	- Second, execute the experiment on the NH machine:
716

    
717
		$ omf exec exp1
718

    
719
	- The output should display messages from the experiment execution and
720
	the list of files present on the experimental node 'node001'.
721

    
722

    
723
------------------ Install the OTG/OTR applications -----------------
724

    
725
- Install required dependencies packages from the OMF release:
726

    
727

    
728
------------------ ------------------  -----------------
729
------------------ ------------------  -----------------
730
------------------ ------------------  -----------------
731

    
732

    
733
STEP 4 - Installation of other GS services on the GS server machine
734

    
735
------------------ Install the OML collection server -----------------
736

    
737

    
738
- Install the OML Collection Server and required dependency from the OMF release 
739

    
740
	$ sudo dpkg --install liboml-transport_2.0.3_i386.deb
741
	$ sudo dpkg --install oml-collection-server_2.0.3_i386.deb
742

    
743
- If require, create symlinks for current versions of libraries:
744

    
745
	$ sudo ln -s /usr/lib/libdb-4.6.so /usr/lib/libdb-4.2.so
746
	$ sudo ln -s /usr/lib/mysqlclient.so.15 /usr/lib/mysqlclient.so.12
747

    
748

    
749

    
750

    
751

    
752

    
753