diff --git a/data/os/SLES/15.yaml b/data/os/SLES/15.yaml index 9230cf0b..cf4e3cd6 100644 --- a/data/os/SLES/15.yaml +++ b/data/os/SLES/15.yaml @@ -2,7 +2,10 @@ # (Suse) SLES 15 defaults in alphabetical order per class ssh::forward_x11_trusted: 'yes' ssh::host: '*' -ssh::include: '/etc/ssh/ssh_config.d/*.conf /usr/etc/ssh/ssh_config.d/*.conf' +ssh::include: + - '/etc/ssh/ssh_config.d/*.conf' + - '/usr/etc/ssh/ssh_config.d/*.conf' + ssh::packages: - 'openssh' # SLES 15 groups the locale SendEnv directives across three lines. @@ -19,7 +22,10 @@ ssh::server::accept_env: ssh::server::authorized_keys_file: - '.ssh/authorized_keys' ssh::server::client_alive_interval: 180 -ssh::server::include: '/etc/ssh/sshd_config.d/*.conf /usr/etc/ssh/sshd_config.d/*.conf' +ssh::server::include: + - '/etc/ssh/sshd_config.d/*.conf' + - '/usr/etc/ssh/sshd_config.d/*.conf' +ssh::server::permit_root_login: 'yes' ssh::server::print_motd: 'no' ssh::server::subsystem: 'sftp /usr/lib/ssh/sftp-server' ssh::server::use_pam: 'yes' diff --git a/manifests/init.pp b/manifests/init.pp index f4d19301..57de6009 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -622,17 +622,27 @@ } if $include { - $include_dir = dirname($include) - file { 'ssh_config_include_dir': - ensure => 'directory', - path => $include_dir, - owner => $include_dir_owner, - group => $include_dir_group, - mode => $include_dir_mode, - purge => $include_dir_purge, - recurse => $include_dir_purge, - force => $include_dir_purge, - require => $packages_require, + case $include { + String: { + $include_dir = dirname($include) + file { 'ssh_config_include_dir': + ensure => 'directory', + path => $include_dir, + owner => $include_dir_owner, + group => $include_dir_group, + mode => $include_dir_mode, + purge => $include_dir_purge, + recurse => $include_dir_purge, + force => $include_dir_purge, + require => $packages_require, + } + } + Array: { + $include_dir = undef + } + default: { + $include_dir = undef + } } } else { $include_dir = undef diff --git a/manifests/server.pp b/manifests/server.pp index fdf1d233..826cf35c 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -621,18 +621,28 @@ } if $include { - $include_dir = dirname($include) - file { 'sshd_config_include_dir': - ensure => 'directory', - path => $include_dir, - owner => $include_dir_owner, - group => $include_dir_group, - mode => $include_dir_mode, - purge => $include_dir_purge, - recurse => $include_dir_purge, - force => $include_dir_purge, - require => $packages_require, - notify => $notify_service, + case $include { + String: { + $include_dir = dirname($include) + file { 'sshd_config_include_dir': + ensure => 'directory', + path => $include_dir, + owner => $include_dir_owner, + group => $include_dir_group, + mode => $include_dir_mode, + purge => $include_dir_purge, + recurse => $include_dir_purge, + force => $include_dir_purge, + require => $packages_require, + notify => $notify_service, + } + } + Array: { + $include_dir = undef + } + default: { + $include_dir = undef + } } } else { $include_dir = undef diff --git a/spec/fixtures/testing/SLES-15_ssh_config b/spec/fixtures/testing/SLES-15_ssh_config index d3a54478..8aee33ee 100644 --- a/spec/fixtures/testing/SLES-15_ssh_config +++ b/spec/fixtures/testing/SLES-15_ssh_config @@ -5,7 +5,9 @@ Host * ForwardX11Trusted yes - Include /etc/ssh/ssh_config.d/*.conf /usr/etc/ssh/ssh_config.d/*.conf + Include /etc/ssh/ssh_config.d/*.conf + Include /usr/etc/ssh/ssh_config.d/*.conf + SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT SendEnv LC_IDENTIFICATION LC_ALL diff --git a/spec/fixtures/testing/SLES-15_sshd_config b/spec/fixtures/testing/SLES-15_sshd_config index bb4539c4..33732867 100644 --- a/spec/fixtures/testing/SLES-15_sshd_config +++ b/spec/fixtures/testing/SLES-15_sshd_config @@ -3,7 +3,8 @@ # # See https://man.openbsd.org/sshd_config for more info -Include /etc/ssh/sshd_config.d/*.conf /usr/etc/ssh/sshd_config.d/*.conf +Include /etc/ssh/sshd_config.d/*.conf +Include /usr/etc/ssh/sshd_config.d/*.conf AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL diff --git a/templates/ssh_config.erb b/templates/ssh_config.erb index 8f6f6086..df225990 100644 --- a/templates/ssh_config.erb +++ b/templates/ssh_config.erb @@ -146,7 +146,9 @@ Host <%= @host %> IgnoreUnknown <%= @ignore_unknown.join(',') %> <% end -%> <% if @include != nil -%> - Include <%= @include %> +<% Array(@include).each do |v| -%> + Include <%= v %> +<% end -%> <% end -%> <% if @ip_qos != nil -%> IPQoS <%= @ip_qos %> diff --git a/templates/sshd_config.erb b/templates/sshd_config.erb index 52b3a710..9238217f 100644 --- a/templates/sshd_config.erb +++ b/templates/sshd_config.erb @@ -4,7 +4,9 @@ # See https://man.openbsd.org/sshd_config for more info <% if @include != nil -%> -Include <%= @include %> +<% Array(@include).each do |v| -%> +Include <%= v %> +<% end -%> <% end -%> <% if @accept_env != nil -%> <% @accept_env.each do |v| -%>