diff options
Diffstat (limited to 'manifests/seat.pp')
-rw-r--r-- | manifests/seat.pp | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/manifests/seat.pp b/manifests/seat.pp new file mode 100644 index 0000000..905503e --- /dev/null +++ b/manifests/seat.pp @@ -0,0 +1,186 @@ +# @summary Seat configuration +# +# @param seat_name +# Seat configuration is matched against the seat name glob in the +# section, for example: +# - `[Seat:*]` matches all seats and is applied first. +# - `[Seat:seat0]` matches the seat named "seat0". +# - `[Seat:seat-thin-client*]` matches all seats that have names +# that start with "seat-thin-client". +# @param order +# Order in resulting configuration file this should appear. +# Probably doesn't matter. +# -------------------------------------------------- +# @param type +# Seat type (local, xremote) +# @param pam_service +# PAM service to use for login +# @param pam_autologin_service +# PAM service to use for autologin +# @param pam_greeter_service +# PAM service to use for greeters +# @param xserver_command +# X server command to run (can also contain arguments e.g. X -special-option) +# @param xmir_command +# Xmir server command to run (can also contain arguments e.g. Xmir -special-option) +# @param xserver_config +# Config file to pass to X server +# @param xserver_layout +# Layout to pass to X server +# @param xserver_allow_tcp +# True if TCP/IP connections are allowed to this X server +# @param xserver_share +# True if the X server is shared for both greeter and session +# @param xserver_hostname +# Hostname of X server (only for type=xremote) +# @param xserver_display_number +# Display number of X server (only for type=xremote) +# @param xdmcp_manager +# XDMCP manager to connect to (implies xserver_allow_tcp=true) +# @param xdmcp_port +# XDMCP UDP/IP port to communicate on +# @param xdmcp_key +# Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf) +# @param greeter_session +# Session to load for greeter +# @param greeter_hide_users +# True to hide the user list +# @param greeter_allow_guest +# True if the greeter should show a guest login option +# @param greeter_show_manual_login +# True if the greeter should offer a manual login option +# @param greeter_show_remote_login +# True if the greeter should offer a remote login option +# @param user_session +# Session to load for users +# @param allow_user_switching +# True if allowed to switch users +# @param allow_guest +# True if guest login is allowed +# @param guest_session +# Session to load for guests (overrides user_session) +# @param session_wrapper +# Wrapper script to run session with +# @param greeter_wrapper +# Wrapper script to run greeter with +# @param guest_wrapper +# Wrapper script to run guest sessions with +# @param display_setup_script +# Script to run when starting a greeter session (runs as root) +# @param display_stopped_script +# Script to run after stopping the display server (runs as root) +# @param greeter_setup_script +# Script to run when starting a greeter (runs as root) +# @param session_setup_script +# Script to run when starting a user session (runs as root) +# @param session_cleanup_script +# Script to run when quitting a user session (runs as root) +# @param autologin_guest +# True to log in as guest by default +# @param autologin_user +# User to log in with by default (overrides autologin_guest) +# @param autologin_user_timeout +# Number of seconds to wait before loading default user +# @param autologin_session +# Session to load for automatic login (overrides user_session) +# @param autologin_in_background +# True if autologin session should not be immediately activated +# @param exit_on_failure +# True if the daemon should exit if this seat fails +define lightdm::seat ( + Enum['local', 'xremote'] $type = 'local', + Optional[String] $pam_service = undef, + Optional[String] $pam_autologin_service = undef, + Optional[String] $pam_greeter_service = undef, + Optional[String] $xserver_command = undef, + Optional[String] $xmir_command = undef, + Optional[String] $xserver_config = undef, + Optional[String] $xserver_layout = undef, + Optional[Boolean] $xserver_allow_tcp = undef, + Optional[Boolean] $xserver_share = undef, + Optional[String] $xserver_hostname = undef, + Optional[Integer] $xserver_display_number = undef, + Optional[String] $xdmcp_manager = undef, + Optional[Stdlib::Port] $xdmcp_port = undef, + # TODO sensitive on this? + Optional[String] $xdmcp_key = undef, + Optional[String] $greeter_session = undef, + Optional[Boolean] $greeter_hide_users = undef, + Optional[Boolean] $greeter_allow_guest = undef, + Optional[Boolean] $greeter_show_manual_login = undef, + Optional[Boolean] $greeter_show_remote_login = undef, + Optional[String] $user_session = undef, + Optional[Boolean] $allow_user_switching = undef, + Optional[Boolean] $allow_guest = undef, + Optional[String] $guest_session = undef, + String $session_wrapper = '/etc/lightdm/Xsession', + Optional[String] $greeter_wrapper = undef, + Optional[String] $guest_wrapper = undef, + Optional[String] $display_setup_script = undef, + Optional[String] $display_stopped_script = undef, + Optional[String] $greeter_setup_script = undef, + Optional[String] $session_setup_script = undef, + Optional[String] $session_cleanup_script = undef, + Optional[Boolean] $autologin_guest = undef, + Optional[String] $autologin_user = undef, + Optional[Integer] $autologin_user_timeout = undef, + Optional[String] $autologin_session = undef, + Optional[Boolean] $autologin_in_background = undef, + Optional[Boolean] $exit_on_failure = undef, + + String $seat_name = $name, + Integer[0] $order = 0, +) { + if $order > $lightdm::conf::seat_fragment_max - $lightdm::conf::seat_fragment_min { + fail("order (${order}) outside allowed range") + } + + $conf = { + 'type' => $type, + 'pam-service' => $pam_service, + 'pam-autologin-service' => $pam_autologin_service, + 'pam-greeter-service' => $pam_greeter_service, + 'xserver-command' => $xserver_command, + 'xmir-command' => $xmir_command, + 'xserver-config' => $xserver_config, + 'xserver-layout' => $xserver_layout, + 'xserver-allow-tcp' => $xserver_allow_tcp, + 'xserver-share' => $xserver_share, + 'xserver-hostname' => $xserver_hostname, + 'xserver-display-number' => $xserver_display_number, + 'xdmcp-manager' => $xdmcp_manager, + 'xdmcp-port' => $xdmcp_port, + 'xdmcp-key' => $xdmcp_key, + 'greeter-session' => $greeter_session, + 'greeter-hide-users' => $greeter_hide_users, + 'greeter-allow-guest' => $greeter_allow_guest, + 'greeter-show-manual-login' => $greeter_show_manual_login, + 'greeter-show-remote-login' => $greeter_show_remote_login, + 'user-session' => $user_session, + 'allow-user-switching' => $allow_user_switching, + 'allow-guest' => $allow_guest, + 'guest-session' => $guest_session, + 'session-wrapper' => $session_wrapper, + 'greeter-wrapper' => $greeter_wrapper, + 'guest-wrapper' => $guest_wrapper, + 'display-setup-script' => $display_setup_script, + 'display-stopped-script' => $display_stopped_script, + 'greeter-setup-script' => $greeter_setup_script, + 'session-setup-script' => $session_setup_script, + 'session-cleanup-script' => $session_cleanup_script, + 'autologin-guest' => $autologin_guest, + 'autologin-user' => $autologin_user, + 'autologin-user-timeout' => $autologin_user_timeout, + 'autologin-session' => $autologin_session, + 'autologin-in-background' => $autologin_in_background, + 'exit-on-failure' => $exit_on_failure, + } + + concat::fragment { "lightdm - config - seat - ${seat_name}": + target => $lightdm::config::filename, + order => 20 + $order, + content => { + sections => { "Seat:${seat_name}" => $conf }, + }, + } +} |