Puppet Class: nova::spicehtml5proxy

Defined in:
manifests/spicehtml5proxy.pp

Overview

Class: nova::spice

Configure spicehtml5 proxy

SPICE is a new protocol which aims to address all the limitations in VNC, to provide good remote desktop support. This class aim to configure the nova services in charge of proxing websocket spicehtml5 request to kvm spice

Parameters:

enabled

(optional) enable spicehtml5proxy service Defaults to true

manage_service

(optional) Whether to start/stop the service Defaults to true

host

(optional) Listen address for the html5 console proxy Defaults to 0.0.0.0

port

(optional) Listen port for the html5 console proxy Defaults to 6082

ensure_package

(optional) Ensure package state Defaults to ‘present’

Parameters:

  • enabled (Any) (defaults to: true)
  • manage_service (Any) (defaults to: true)
  • host (Any) (defaults to: '0.0.0.0')
  • port (Any) (defaults to: '6082')
  • ensure_package (Any) (defaults to: 'present')


31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'manifests/spicehtml5proxy.pp', line 31

class nova::spicehtml5proxy(
  $enabled        = true,
  $manage_service = true,
  $host           = '0.0.0.0',
  $port           = '6082',
  $ensure_package = 'present'
) {

  include nova::deps
  include nova::params

  # Nodes running spicehtml5proxy do *not* need (and in fact, don't care)
  # about [spice]/enable to be set. This setting is for compute nodes,
  # where we must select VNC or SPICE so that it can be passed on to
  # libvirt which passes it as parameter when starting VMs with KVM.
  # Therefore, this setting is set within compute.pp only.
  nova_config {
    'spice/agent_enabled':   value => $enabled;
    'spice/html5proxy_host': value => $host;
    'spice/html5proxy_port': value => $port;
  }

  # The Debian package needs some scheduling:
  # 1/ Install the packagin
  # 2/ Fix /etc/default/nova-consoleproxy
  # 3/ Start the service
  # Other OS don't need this scheduling and can use
  # the standard nova::generic_service
  if $::operatingsystem == 'Debian' {
    if $enabled {
      file_line { '/etc/default/nova-consoleproxy:NOVA_CONSOLE_PROXY_TYPE':
        path    => '/etc/default/nova-consoleproxy',
        match   => '^NOVA_CONSOLE_PROXY_TYPE=(.*)$',
        line    => 'NOVA_CONSOLE_PROXY_TYPE=spicehtml5',
        tag     => 'nova-consoleproxy',
        require => Anchor['nova::config::begin'],
        notify  => Anchor['nova::config::end'],
      }
    }
  }
  nova::generic_service { 'spicehtml5proxy':
    enabled        => $enabled,
    manage_service => $manage_service,
    package_name   => $::nova::params::spicehtml5proxy_package_name,
    service_name   => $::nova::params::spicehtml5proxy_service_name,
    ensure_package => $ensure_package,
  }
}