HAVE_CURL - for the libcurl library (recommended)
- contains routines for http client
HAVE_OPENSSL - for the openssl library (recommended)
- contains routines for encryption
HAVE_BZIP2 - for the bzip2 library (optional)
- contains routines for compression
1.2 In the 'src' subdirectory execute one of the following commands:
make slv # to compile only the slave part of qadpz make mast # to compile only the master part of qadpz make cli # to compile only the client part of qadpz make main # to compile all parts (slave, master, client)
1.3 The resulting executables and libraries will be located in the 'bin' subdirectory:
(slave) qadpz_slave - slave executable file
libslv-app.so - helper slave library for starting executable
or script files as tasks on the slave (the slave
by itself can start only shared libraries as tasks)
(master) qadpz_master - master executable file
qadpz_admin - utility for administration of users, security keys
and slave upgrades on the master
(client) qadpz_run - client executable file (used for starting and
controlling jobs described in xml project files)
libcli_serv.a - library file for the client API (service)
(if you wish to write your own client program)
1.4 You can compile also the samples by executing the following command (in the same 'src' subdirectory):
make samples
1.5 After compiling the samples, you will get the following files in the 'bin' subdirectory:
(dumb) libslv-dumb.so - slave binary for the task (as a shared library) (simple) simple - slave binary for the task (as an executable)
1.6 Next step is to configure each part of the system:
(master) master.cfg - configuration file for the master
users.txt - users file for the master (with username/password)
privkey - file containing the private key of the master
(only the master process should have access to it!)
(slave) slave.cfg - configuration file for the slave
(client) client.cfg - configuration file for the client
pubkey - file containing the public key of the master
(use qadpz_admin on the master to extract it from
the master's private key)
* use qadpz_admin to generate/configure the users and key files on the master. * you will not need the private and public keys if you don't enable openssl when compiling (i.e. HAVE_OPENSSL=0 in src/Makefile.base); also users will not need any passwords in this case (passwords will be blank, but you still need to define the users). * if you change the private key on the master, you will need to regenerate and distribute again the public key to each of the clients; if the master is running, you will need to restart in order to use the new keys. * if you add/change a user while the master is running, you don't need to restart it: the master will automatically read the new user list after a while (as configured in the master's config file). * for non-Linux unix systems you will need a random seed file on both the master and client.
1.7 Install the binary and config files on each of the computers:
(slave) qadpz_slave + slave.cfg (master) qadpz_master + qadpz_admin + master.cfg + users.txt + privkey (client) qadpz_run + client.cfg + pubkey
1.8 Start the master and the slaves on each computer.
* you will need some disk space on the slave for downloading and storing
binaries and data files ("tmp_dir" parameter in slave's config file).
* you can disable log generation by commenting out the "dbug_file" parameter
in each config file.
1.9 You will also need a web server where you can store (upload/download) binary and data files for each job/task. You can use the download.cgi and upload.cgi as CGI scripts for this (they are written in Perl, so you will need support for Perl on the web server).
1.10 You can try some of the examples to see how the system works by using the generic 'qadpz_run' client and using the xml sample project files from the 'bin' directory.