Puppet Class: display

Inherits:
display::params
Defined in:
manifests/init.pp

Overview

Class: display

Installs and configures Xvfb and x11vnc.

Parameters

display

X display to use. Default is 0.

width

Screen width to use. Default is 1280.

height

Screen height to use. Default is 800.

color

Screen color depth to use. Default is “24+32” (32 bit).

runuser

User to run xvfb as. Default is ‘root’.

fbdir

Directory in which the memory mapped files containing the framebuffer memory should be created. Defaults to ‘/tmp’

xvfb_package

Package name for installing xvfb. Defaults to ‘xorg-x11-server-Xvfb’ on RedHat systems and ‘xvfb’ on Debian systems.

xvfb_service

Name of the xvfb service. This class will create an initscript with this name and manage a service with this name. Defaults to ‘xvfb’

xvfb_bin

Absolute path to the ‘xvfb’ executable. Defaults to ‘/usr/bin/xvfb’ on RedHat and Debian systems and ‘/usr/local/bin/Xvfb’ on FreeBSD.

xvfb_custom_args

Custom arguments to use for starting xvfb. If this parameter is defined, the display, width, height, color, and fbdir parameter values will not be used for starting the xvfb service via the init script - that’s left up to the user. Optional. Defaults to undefined.

x11vnc_package

Package name for installing x11vnc. Defaults to ‘x11vnc’ on RedHat and Debian systems.

x11vnc_service

Name of the x11vnc service. This class will create an init script with this name and manage a service with this name. Defaults to ‘x11vnc’

x11vnc_bin

Absolute path to the ‘x11vnc’ executable. Defaults to ‘/usr/bin/x11vnc’ on RedHat and Debian systems and ‘/usr/local/bin/x11vnc’ on FreeBSD.

x11vnc_custom_args

Custom arguments to use for starting x11vnc. If this parameter is defined, the display parameter will be unused for x11vnc. You’ll have to pass that yourself via x11vnc_custom_args. Optional. Defaults to undefined.

display_env

Boolean. Provide a profile.d script to export the DISPLAY variable. Defaults to true.

display_env_path

Absolute path to place a profile.d script that exports the DISPLAY variable. Defaults to ‘/etc/profile.d/vagrant_display.sh This is only effective if ’profiled’ is true.

Examples

class { 'display':
  display => 99,
  width   => 1024,
  height  => 768,
  color   => 24,
}

Authors

Joshua Beard <beard@puppetlabs.com> Alex Rodionov <p0deje@gmail.com> Joshua Hoblitt <jhoblitt@cpan.org>

Copyright © 2013-2014 Joshua Beard <beard@puppetlabs.com> Copyright © 2013-2014 Alex Rodionov <p0deje@gmail.com> Copyright © 2012-2014 Joshua Hoblitt <jhoblitt@cpan.org>

Parameters:

  • display (Any) (defaults to: $display::params::display)
  • width (Any) (defaults to: $display::params::width)
  • height (Any) (defaults to: $display::params::height)
  • color (Any) (defaults to: $display::params::color)
  • runuser (Any) (defaults to: $display::params::runuser)
  • fbdir (Any) (defaults to: $display::params::fbdir)
  • xvfb_package (Any) (defaults to: $display::params::xvfb_package_name)
  • xvfb_service (Any) (defaults to: $display::params::xvfb_service_name)
  • xvfb_bin (Any) (defaults to: $display::params::xvfb_bin)
  • xvfb_custom_args (Any) (defaults to: undef)
  • x11vnc_package (Any) (defaults to: $display::params::x11vnc_package_name)
  • x11vnc_service (Any) (defaults to: $display::params::x11vnc_service_name)
  • x11vnc_bin (Any) (defaults to: $display::params::x11vnc_bin)
  • x11vnc_custom_args (Any) (defaults to: undef)
  • display_env (Any) (defaults to: true)
  • display_env_path (Any) (defaults to: undef)


77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'manifests/init.pp', line 77

class display (
  $display            = $display::params::display,
  $width              = $display::params::width,
  $height             = $display::params::height,
  $color              = $display::params::color,
  $runuser            = $display::params::runuser,
  $fbdir              = $display::params::fbdir,
  $xvfb_package       = $display::params::xvfb_package_name,
  $xvfb_service       = $display::params::xvfb_service_name,
  $xvfb_bin           = $display::params::xvfb_bin,
  $xvfb_custom_args   = undef,
  $x11vnc_package     = $display::params::x11vnc_package_name,
  $x11vnc_service     = $display::params::x11vnc_service_name,
  $x11vnc_bin         = $display::params::x11vnc_bin,
  $x11vnc_custom_args = undef,
  $display_env        = true,
  $display_env_path   = undef,
) inherits display::params {
  require stdlib
  validate_integer($display)
  validate_integer($width)
  validate_integer($height)
  validate_re($color, '\d{2}\+\d{2}')
  validate_string($runuser)
  validate_absolute_path($fbdir)
  validate_string($xvfb_package)
  validate_string($xvfb_service)
  validate_absolute_path($xvfb_bin)
  validate_string($x11vnc_package)
  validate_string($x11vnc_service)
  validate_absolute_path($x11vnc_bin)
  validate_bool($display_env)

  if $xvfb_custom_args {
    validate_string($xvfb_custom_args)
  }

  if $x11vnc_custom_args {
    validate_string($x11vnc_custom_args)
  }

  if $display_env_path {
    validate_absolute_path($display_env_path)
  }

  if $display_env {
    class { 'display::env':
      display => $display,
      file    => $display_env_path,
    }
  }

  class { 'display::xvfb':
    display     => $display,
    width       => $width,
    height      => $height,
    color       => $color,
    runuser     => $runuser,
    fbdir       => $fbdir,
    package     => $xvfb_package,
    service     => $xvfb_service,
    xvfb_bin    => $xvfb_bin,
    custom_args => $xvfb_custom_args,
  }

  class { 'display::x11vnc':
    display     => $display,
    x11vnc_bin  => $x11vnc_bin,
    package     => $x11vnc_package,
    service     => $x11vnc_service,
    custom_args => $x11vnc_custom_args,
  }

  Class['display::xvfb'] -> Class['display::x11vnc']
}