Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2021.7.x
- Puppet >= 7.24 < 9.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'jcpunk-novnc', '0.1.0'
Learn more about managing modules with a PuppetfileDocumentation
novnc
Table of Contents
- Description
- Setup - The basics of getting started with novnc
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Description
Install and setup noVNC along with websockify.
Setup
What novnc affects
This will will try to setup the non-webserver parts of a noVNC site.
Setup Requirements OPTIONAL
You are expected to setup the actual VNC server yourself.
Beginning with novnc
Usage
class { 'novnc': }
The noVNC client takes a parameter vnc_sessions
with a format of:
novnc::vnc_servers:
session_name: server:port
other_session_name: server:otherport
Limitations
You must manage you own firewall settings.
There are too may ways folks may want to setup the webserver, so no attempt
is made here to provide hooks for the websockets proxy via httpd
or nginx
.
If you want to use the SSL wrapper for websockify
you are responsible to
depoy the cert, key, CA, and set the parameters you need.
Development
See the linked repo in metadata.json
Reference
Table of Contents
Classes
Public Classes
novnc
: Setup a websocket service for running the NoVNC interface
Private Classes
novnc::config
: Setup any token file or webserver indexnovnc::install
: Install the novnc packagesnovnc::service
: manage the websockify service
Classes
novnc
Setup a websocket service for running the NoVNC interface
Parameters
The following parameters are available in the novnc
class:
manage_packages
packages
packages_ensure
manage_service_config
websockify_config_dir
websockify_config_mode
websockify_token_plugin
websockify_token_source
websockify_auth_plugin
websockify_auth_source
websockify_service_user
websockify_service_group
websockify_service_dynamicuser
make_webserver_vnc_index
webserver_novnc_location
webserver_vnc_index
manage_service
websockify_command
websockify_service_name
websockify_service_ensure
websockify_service_enable
websockify_port
websockify_webroot
websockify_prefer_ipv6
websockify_use_ssl
websockify_use_ssl_only
websockify_ssl_ca
websockify_ssl_cert
websockify_ssl_key
vnc_servers
manage_packages
Data type: Boolean
Should this class manage the packages
packages
Data type: Array
List of packages to install
packages_ensure
Data type: String
Ensure state of the vnc server packages
manage_service_config
Data type: Boolean
should this class manage any config files?
websockify_config_dir
Data type: Stdlib::Absolutepath
where are config files kept
websockify_config_mode
Data type: String
what should the config mode be
websockify_token_plugin
Data type: String
what type of token plugin is in use
websockify_token_source
Data type: String
what is the data source for the token plugin if $websockify_token_plugin == 'TokenFile' or 'ReadOnlyTokenFile', this should be the filename
websockify_auth_plugin
Data type: String
what type of auth plugin is in use
websockify_auth_source
Data type: String
what is the data source for the auth plugin
websockify_service_user
Data type: String
User to run the service as
websockify_service_group
Data type: String
Group to run the service as
websockify_service_dynamicuser
Data type: Boolean
Use systemd dynamic users for this service
make_webserver_vnc_index
Data type: Boolean
Make a simple index file listing out known sessions
webserver_novnc_location
Data type: Stdlib::Absolutepath
What is the URL base for novnc (probably /novnc)
webserver_vnc_index
Data type: Stdlib::Absolutepath
Where should we write out the known session index?
manage_service
Data type: Boolean
Should this service be managed
websockify_command
Data type: Stdlib::Absolutepath
where is /usr/bin/websockify?
websockify_service_name
Data type: String
Name of service to manage
websockify_service_ensure
Data type: String
Ensure for service
websockify_service_enable
Data type: Boolean
Enable for service
websockify_port
Data type: Variant[String, Integer[0,65535]]
Port to listen on
websockify_webroot
Data type: Stdlib::Absolutepath
Webroot for service to use
websockify_prefer_ipv6
Data type: Boolean
Try IPv6 before IPv4
websockify_use_ssl
Data type: Boolean
Use an SSL certificate for websockify
websockify_use_ssl_only
Data type: Boolean
Only use SSL connections
websockify_ssl_ca
Data type: Stdlib::Absolutepath
SSL Certificate Authority for websockify
websockify_ssl_cert
Data type: Stdlib::Absolutepath
SSL certificate for websockify
websockify_ssl_key
Data type: Stdlib::Absolutepath
SSL key for websockify
vnc_servers
Data type: Hash
A hash of VNC servers to connect to. ie. {'session_name' => 'host:port'}
Dependencies
- puppetlabs/stdlib (>= 9.0.0 < 10.0.0)
- puppet/systemd (>= 5.0.0 < 9.0.0)