Puppet Class: tigervnc::config
- Defined in:
- manifests/config.pp
Overview
This class is called from tigervnc for service config.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'manifests/config.pp', line 5
class tigervnc::config {
assert_private('tigervnc::config is a private class')
$_vncservers = $tigervnc::vncservers
$_vncservers_length = length($_vncservers)
if $_vncservers_length == 0 {
fail("no vncservers were defined for use with tigervnc::config class")
}
case $::operatingsystem {
'RedHat', 'CentOS': {
if $tigervnc::manage_vncuser_passwords {
$tigervnc::vncservers.each |String $username, Hash $params| {
exec { "create_vnc_dir_${username}":
command => "mkdir ${tigervnc::user_homedir_path}/${username}/.vnc",
path => ['/bin', '/usr/bin',],
cwd => "${tigervnc::user_homedir_path}/${username}",
user => $username,
creates => "${tigervnc::user_homedir_path}/${username}/.vnc",
}
if 'passwd' in $params {
$pass = $params[passwd]
exec { "create_vncuser_passwd_${username}":
command => "echo ${pass} | vncpasswd -f > ${tigervnc::user_homedir_path}/${username}/.vnc/passwd ; chmod 600 ${tigervnc::user_homedir_path}/${username}/.vnc/passwd",
path => ['/bin', '/usr/bin',],
cwd => "${tigervnc::user_homedir_path}/${username}/.vnc",
user => $username,
creates => "${tigervnc::user_homedir_path}/${username}/.vnc/passwd",
require => Exec["create_vnc_dir_${username}"],
}
} else {
exec { "create_vncuser_passwd_${username}":
command => "echo ${tigervnc::vncuser_default_passwd} | vncpasswd -f > ${tigervnc::user_homedir_path}/${username}/.vnc/passwd ; chmod 600 ${tigervnc::user_homedir_path}/${username}/.vnc/passwd",
path => ['/bin', '/usr/bin',],
cwd => "${tigervnc::user_homedir_path}/${username}",
user => $username,
creates => "${tigervnc::user_homedir_path}/${username}/.vnc/passwd",
require => Exec["create_vnc_dir_${username}"],
}
}
}
}
case $::operatingsystemmajrelease {
'6': {
file { '/etc/sysconfig/vncservers':
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
content => template($tigervnc::sysconfig_template),
}
}
'7': {
include ::systemd::systemctl::daemon_reload
$_vncservers.each |String $username, Hash $useropts| {
if 'ensure' in $useropts {
$_ensure = $useropts[ensure]
} else {
$_ensure = 'present'
}
$_displaynumber = $useropts[displaynumber]
if 'args' in $useropts {
$_args = $useropts[args]
file { "/etc/systemd/system/vncserver@:${_displaynumber}.service":
ensure => $_ensure,
content => epp('tigervnc/systemd_service_with_args.epp', { 'username' => $username, 'args' => $_args }),
} ~> Class['systemd::systemctl::daemon_reload']
} else {
file { "/etc/systemd/system/vncserver@:${_displaynumber}.service":
ensure => $_ensure,
content => epp('tigervnc/systemd_service.epp', { 'username' => $username }),
} ~> Class['systemd::systemctl::daemon_reload']
}
}
}
default: {
fail("${::operatingsystem} ${::operatingsystemmajrelease} not supported")
}
}
}
default: {
fail("${::operatingsystem} not supported")
}
}
}
|