98 |
98 |
|
99 |
99 |
4. Installation of the Synnefo Django project:
|
100 |
100 |
As of v0.5 the Synnefo Django project needs to be installed on nodes
|
101 |
|
of type APISERVER, LOGIC and on the GANETI-MASTER, with a properly
|
102 |
|
configured settings.py. In later revisions, the specific parts of the Django
|
103 |
|
project which need to run on each node type will be identified.
|
|
101 |
of type APISERVER, and LOGIC, with a properly configured settings.py. In
|
|
102 |
later revisions, the specific parts of the Django project which need to run
|
|
103 |
on each node type will be identified.
|
104 |
104 |
|
105 |
105 |
Synnefo is written in Python 2.6 and depends on the following Python modules:
|
106 |
106 |
[package versions confirmed to be compatible are in braces]
|
... | ... | |
318 |
318 |
|
319 |
319 |
9. Installation of the Ganeti monitoring daemon, /ganeti/snf-ganeti-eventd:
|
320 |
320 |
The Ganeti monitoring daemon must run on GANETI-MASTER.
|
321 |
|
The Ganeti monitoring daemon has no dependency on Django.
|
322 |
321 |
|
323 |
|
Override all relevant settings in settings.d/99-snf-ganeti-eventd.conf,
|
324 |
|
GANETI_* variables.
|
325 |
|
Then, make sure PYTHONPATH contains the parent of the Django project,
|
326 |
|
and start the server on the Ganeti master as root.
|
|
322 |
The monitoring daemon is configured through /etc/synnefo/settings.conf.
|
|
323 |
An example is provided under snf-ganeti-tools/.
|
327 |
324 |
|
328 |
|
root:~# export PYTHONPATH=$PYTHONPATH:/opt
|
329 |
|
root:~# /opt/synnefo/ganeti/snf-ganeti-eventd.py
|
|
325 |
If run from the repository directory, make sure to have snf-ganeti-tools/
|
|
326 |
in the PYTHONPATH.
|
|
327 |
|
|
328 |
You may also build Debian packages directly from the repository:
|
|
329 |
$ cd snf-ganeti-tools
|
|
330 |
$ dpkg-buildpackage -b -uc -us
|
|
331 |
# dpkg -i ../snf-ganeti-tools-*deb
|
330 |
332 |
|
331 |
333 |
TBD: how to handle master migration.
|
332 |
334 |
|
... | ... | |
347 |
349 |
|
348 |
350 |
|
349 |
351 |
11. Installation of the Synnefo Ganeti hook:
|
350 |
|
The bash wrapper ganeti/snf-ganeti-hook is the generic launcher for
|
351 |
|
Synnefo hooks in Ganeti. It resides in the ganeti/ directory under the
|
352 |
|
root of the Synnefo Django project.
|
|
352 |
The generic Synnefo Ganeti hook wrapper resides in the snf-ganeti-tools/
|
|
353 |
directory of the Synnefo repository.
|
353 |
354 |
|
354 |
355 |
The hook needs to be enabled for phases post-{add,modify,reboot,start,stop}
|
355 |
356 |
by *symlinking* in
|
... | ... | |
357 |
358 |
GANETI-MASTER, e.g.:
|
358 |
359 |
|
359 |
360 |
root@ganeti-master:/etc/ganeti/hooks/instance-start-post.d# ls -l
|
360 |
|
lrwxrwxrwx 1 root root 45 May 3 13:45 00-snf-ganeti-hook -> /home/devel/synnefo/ganeti/snf-ganeti-hook
|
|
361 |
lrwxrwxrwx 1 root root 45 May 3 13:45 00-snf-ganeti-hook -> /home/devel/synnefo/snf-ganeti-hook/snf-ganeti-hook.py
|
361 |
362 |
|
362 |
363 |
IMPORTANT: The link name may only contain "upper and lower case, digits,
|
363 |
364 |
underscores and hyphens. In other words, the regexp ^[a-zA-Z0-9_-]+$."
|
364 |
365 |
See:
|
365 |
|
http://docs.ganeti.org/ganeti/master/html/hooks.html?highlight=hooks#naming
|
|
366 |
http://docs.ganeti.org/ganeti/master/html/hooks.html?highlight=hooks#naming
|
|
367 |
|
|
368 |
If run from the repository directory, make sure to have snf-ganeti-tools/
|
|
369 |
in the PYTHONPATH.
|
366 |
370 |
|
367 |
|
You need to set SYNNEFO_PROJECT_DIR in ganeti/snf-ganeti-hook. The bash
|
368 |
|
script modifies PYTHONPATH accordingly, before passing control to the
|
369 |
|
relevant Python code.
|
|
371 |
Alternative, build Debian packages which take care of building, installing
|
|
372 |
and activating the Ganeti hook automatically, see step. 9.
|
370 |
373 |
|
371 |
374 |
|
372 |
375 |
12. Installation of the VNC authentication proxy, vncauthproxy:
|
... | ... | |
408 |
411 |
cd $SYNNEFO
|
409 |
412 |
sudo pip install -e git+https://code.grnet.gr/git/vncauthproxy@5a196d8481e171a#egg=vncauthproxy
|
410 |
413 |
|
|
414 |
|
411 |
415 |
13. Installation of the customized Ganeti Instance Image for image deployment:
|
412 |
416 |
For Synnefo to be able to launch VMs from specified Images, you need
|
413 |
417 |
the gnt-instance-image OS Provider installed on the Ganeti backend.
|
... | ... | |
417 |
421 |
recommended to use the win-support branch (known good commit:
|
418 |
422 |
970e7307a52cc50080f8f641faba27e03a64b533).
|
419 |
423 |
|
|
424 |
Make sure to enable progress monitoring, using the --with-progress-monitor
|
|
425 |
argument to configure. This requires the snf-progress-monitor tool,
|
|
426 |
provided in snf-ganeti-tools/ and also as part of the snf-ganeti-tools
|
|
427 |
Debian package.
|
|
428 |
|
420 |
429 |
After installing gnt-instance-image do the following:
|
421 |
430 |
1. root@ganeti-master$ cd /path-to-repo
|
422 |
431 |
root@ganeti-master$ cp ./defaults /etc/default/ganeti-instance-image
|
... | ... | |
435 |
444 |
`hostname' hook too:
|
436 |
445 |
chmod +x /et/ganeti/instance-image/hooks/{linux,windows}/hostname
|
437 |
446 |
|
438 |
|
Your Custom Images should be stored in a dump format under
|
|
447 |
Your custom Images should be stored in a dump format under
|
439 |
448 |
/var/cache/ganeti-instance-image and their filenames should have the
|
440 |
449 |
following format:
|
441 |
450 |
{backend_id}-x86_64-root.dump
|
442 |
451 |
e.g., debian-6.0.1a-x86_64-root.dump (backend_id = "debian-6.0.1a")
|
443 |
452 |
|
|
453 |
|
444 |
454 |
14. Setup Synnefo-specific networking on the Ganeti backend:
|
445 |
455 |
This part is deployment-specific and must be customized based on the
|
446 |
456 |
specific needs of the system administrators.
|