Revision 5949b704

b/README.deploy
4 4
deployment. It begins by examining the different node roles, then moves to the
5 5
installation and setup of distinct software components.
6 6

  
7
It is current as of Synnefo v0.5.2.
7
It is current as of Synnefo v0.7.
8 8

  
9 9

  
10 10
Node types
......
430 430
    sudo pip install -e git+https://code.grnet.gr/git/vncauthproxy@5a196d8481e171a#egg=vncauthproxy
431 431

  
432 432

  
433
13. Installation of the customized Ganeti Instance Image for image deployment:
433
13. Installation of the snf-image Ganeti OS provider for image deployment:
434 434
    For Synnefo to be able to launch VMs from specified Images, you need
435
    the gnt-instance-image OS Provider installed on *all* Ganeti nodes.
436
    There are 2 different ways to install gnt-instance-image on a node:
437

  
438
    1.As a debian package (recommended)
439
        
440
        Download and install the debian package found here:
441
        https://code.grnet.gr/attachments/download/351/ganeti-instance-image_0.5.1-1-snf1_all.deb
442
        You can do this by running the following:
443
        
444
        $ wget https://code.grnet.gr/attachments/download/351/ganeti-instance-image_0.5.1-1-snf1_all.deb
445
        # dpkg -i ganeti-instance-image_0.5.1-1-snf1_all.deb
446

  
447
        Make any additional configuration changes in 
448
        /etc/default/ganeti-instance-image.
449
        It is recommended to change the default IMAGE_DIR from 
450
        /var/cache/ganeti-instance-image to something like /srv/example_images_repo
451

  
452
	Be sure to have all the package's needed dependencies installed 
453
        on your system.
454

  
455
    2.From source    
456

  
457
        Download and install gnt-instance-image from its own repository,
458
        at https://code.grnet.gr/git/gnt-instance-image.
459
        [FIXME: Must be updated to include information on installation of snf-image]
460

  
461
        Make sure to enable progress monitoring, using the --with-progress-monitor
462
        argument to configure. This requires the snf-progress-monitor tool,
463
        provided in snf-ganeti-tools/ and also as part of the snf-ganeti-tools
464
        Debian package.
465

  
466
        After installing gnt-instance-image do the following:
467
        1. $ cd /path-to-repo
468
           # cp ./defaults /etc/default/ganeti-instance-image
469
        2. In /etc/ganeti/instance-image/hooks, make sure the hooks you want to
470
           run during the instance creation process have execute permission.
471
           For linux you will need at lease `grub' and `root_passwd' to make the
472
           instance usable:
473
           chmod +x /etc/ganeti/instance-image/hooks/linux/{grub,root_passwd}
474
           For security reasons make sure `ssh' hook is also enabled.
475
           For windows you will need `mbr' and `admin_passwd':
476
           chmod +x /etc/ganeti/instance-image/hooks/windows/{mbr,admin_passwd}
477
           For both architectures it is also highly recommended to enable the
478
           `hostname' hook too:
479
           chmod +x /et/ganeti/instance-image/hooks/{linux,windows}/hostname
480

  
481
    Your custom Images should be stored in a dump format under
482
    /var/cache/ganeti-instance-image (default) or a different directory of your
483
    choice, accordingly set in /etc/default/ganeti-instance-image. The latter
484
    is recommended. Their filenames should have the following format:
485
      {backend_id}-x86_64-root.dump
486
    e.g., debian-6.0.1a-x86_64-root.dump (backend_id = "debian-6.0.1a")
435
    the snf-image OS Provider installed on *all* Ganeti nodes.
436

  
437
    Please see https://code.grnet.gr/projects/snf-image/wiki
438
    for installation instructions and documentation on the design
439
    and implementation of snf-image.
440

  
441
    Please see https://code.grnet.gr/projects/snf-image/files
442
    for the latest packages.
443

  
444
    Images should be stored under extdump format in a directory
445
    of your choice, configurable as IMAGE_DIR in /etc/default/snf-image.
487 446

  
488 447

  
489 448
14. Setup Synnefo-specific networking on the Ganeti backend:
b/README.upgrade
5 5
For more information, please see README.deploy.
6 6

  
7 7

  
8
v0.6.2 -> TBD
8
v0.6.2 -> v0.7
9 9
HTML TEMPLATES
10 10
    * Included a generic service unavailable template based on
11 11
      generic_info_tpl.html, as ui/static/service_unavailable.html.
......
14 14
    * python-unittest2, python-paramiko needed by the new integration
15 15
      test suite snf-tools/snf-test. Paramiko shipped with Squeeze uses
16 16
      broken RandomPool, produces warnings, see #576697.
17
    * snf-image must be installed on all Ganeti hosts, see README.deploy,
18
      Step 13.
17 19

  
18
NEW SETTINGS
20
COMPONENTS
21
    * snf-image replaces snf-ganeti-instance-image as the Ganeti OS provider
22
      used by Synnefo, and can live alongside snf-ganeti-instance-image.
23
      Once snf-image has been deployed on all Ganeti nodes, be sure to modify
24
      the value of settings.d/10-backend.conf:GANETI_CREATEINSTANCE_KWARGS
25
      to use 'snf-image+default'.
26

  
27
NEW/UPDATED SETTINGS
19 28
    * EMAIL_SUBJECT_PREFIX:
20 29
      Prepended to automated emails, set to someting that uniquely identifies
21 30
      the deployment.
......
38 47
      error overlay.
39 48
    * UI_HANDLE_WINDOW_EXCEPTIONS in 30-ui.conf:
40 49
      Whether UI should display error overlay for all Javascript exceptions.
50
    * GANETI_CREATEINSTANCE_KWARGS in 10-backend.conf:
51
      Must be updated to use snf-image as the Ganeti OS provider.
41 52
    
42 53
DB MIGRATION
43 54
    * Uniqueness constraints have been added to the metadata models.
b/logic/backend.py
236 236
    kw = settings.GANETI_CREATEINSTANCE_KWARGS
237 237
    kw['mode'] = 'create'
238 238
    kw['name'] = vm.backend_id
239
    # Defined in settings.GANETI_CREATE_INSTANCE_KWARGS
239
    # Defined in settings.GANETI_CREATEINSTANCE_KWARGS
240 240
    # kw['disk_template'] = settings.GANETI_DISK_TEMPLATE
241 241
    kw['disks'] = [{"size": sz}]
242 242
    kw['nics'] = [nic]
243
    # Defined in settings.GANETI_CREATE_INSTANCE_KWARGS
243
    # Defined in settings.GANETI_CREATEINSTANCE_KWARGS
244 244
    # kw['os'] = settings.GANETI_OS_PROVIDER
245 245
    kw['ip_check'] = False
246 246
    kw['name_check'] = False
......
262 262
    if personality:
263 263
        kw['osparams']['img_personality'] = json.dumps(personality)
264 264
    
265
    # Defined in settings.GANETI_CREATE_INSTANCE_KWARGS
265
    # Defined in settings.GANETI_CREATEINSTANCE_KWARGS
266 266
    # kw['hvparams'] = dict(serial_console=False)
267 267

  
268 268
    return rapi.CreateInstance(**kw)

Also available in: Unified diff